我可以生成包含 URL 和文本值的二维码吗?

Can I generate a QR code that contains both URL and text values?

有人问过这个问题,但我问的不是同一件事。使用 iOS Swift,我试图在 QR 码中存储 2 个值。一个是商店中某个应用程序的 URL。另一个是该应用程序可以拾取的字符串(它有自己的扫描器,具有获取字符串值的逻辑)。第二部分工作正常,因为我可以轻松解析整个字符串。我尝试在值之间放置一个逗号,它几乎可以工作,但是当我使用通用扫描仪时,我收到一条 "Can't connect to the App Store" 消息。它拿起 URL 并尝试连接,但额外的数据似乎搞砸了。如果我去掉逗号和字符串,URL 就会起作用。

这是我的代码的一个子集...

override func viewDidLoad() {
    super.viewDidLoad()

    let payload = "https://apps.apple.com/ca/app/.../,<my string value>"
    let image = generateQRCode(from: payload)
    qrCodeImage.image = image
}


func generateQRCode(from string: String) -> UIImage? {
    let data = string.data(using: String.Encoding.ascii)

    if let filter = CIFilter(name: "CIQRCodeGenerator") {
        filter.setValue(data, forKey: "inputMessage")
        let transform = CGAffineTransform(scaleX: 3, y: 3)

        if let output = filter.outputImage?.transformed(by: transform) {
            return UIImage(ciImage: output)
        }
    }

    return nil
}

有谁知道这是否可能?例如我可以使用 json 或 vcard,还是通用扫描仪无法识别 URL?

您可以在 QR 码 URL 上添加您想要的数据作为查询参数,除非您附加到 URL 的数据存在隐私问题。