swift参数如何生成二维码图片?
How to generate QRCode image with parameters in swift?
我需要用应用程序注册用户 4 个参数创建二维码图像,这样如果我从其他设备扫描该二维码图像,我需要显示该用户详细信息,这就是我的要求。
我在这里获取注册用户的详细信息: 使用这些参数我需要生成二维码图像
var userId = userModel?.userId
var userType = userModel?.userType
var addressId = userModel?.userAddrId
var addressType = userModel?.userAddrType
根据[这个答案][1],我创建了带有字符串的 QRCode...但是我。需要用我注册的用户参数生成
带有字符串的示例代码:
private func createQRFromString(str: String) -> CIImage? {
let stringData = str.data(using: .utf8)
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(stringData, forKey: "inputMessage")
filter?.setValue("H", forKey: "inputCorrectionLevel")
return filter?.outputImage
}
var qrCode: UIImage? {
if let img = createQRFromString(str: "Hello world program created by someone") {
let someImage = UIImage(
ciImage: img,
scale: 1.0,
orientation: UIImage.Orientation.down
)
return someImage
}
return nil
}
@IBAction func qrcodeBtnAct(_ sender: Any) {
qrImag.image = qrCode
}
请推荐我
[1]: Is there a way to generate QR code image on iOS
你说你需要二维码reader,但这里你只是在谈论二维码生成。这是两个不同的话题。
就二维码生成而言,您只需将您的四个值放入二维码负载中即可。现在您只是传递一个字符串文字,但您可以只更新该字符串以将您的四个属性包含在您想要的任何易于解码的格式中。
话虽这么说,在编写这样的应用程序时,您通常不仅希望能够从应用程序内部扫描二维码,而且还希望能够从任何二维码扫描应用程序(例如内置的相机应用程序)中扫描二维码,并且它打开你的应用程序。这会影响您对有效载荷进行编码的方式。
典型的答案是使您的 QR 码有效负载成为 URL,例如,使用通用 link。参见 Supporting Universal Links in Your App。因此,首先关注启用通用 links.
一旦通用 link 开始工作(最初根本不使用二维码),问题就变成了如何以编程方式创建通用 link提供给上面的 QR 生成器例程。为此 URLComponents
是编码 URLs 的好工具。例如,参见 Swift GET request with parameters。只需使用您的通用 link 作为 URL.
中使用的主机
FWIW,虽然我建议只将通用 link URL 编码到您的 QR 码中,但另一种选择是其他一些深度 linking 模式,例如 branch.io.
我需要用应用程序注册用户 4 个参数创建二维码图像,这样如果我从其他设备扫描该二维码图像,我需要显示该用户详细信息,这就是我的要求。
我在这里获取注册用户的详细信息: 使用这些参数我需要生成二维码图像
var userId = userModel?.userId
var userType = userModel?.userType
var addressId = userModel?.userAddrId
var addressType = userModel?.userAddrType
根据[这个答案][1],我创建了带有字符串的 QRCode...但是我。需要用我注册的用户参数生成
带有字符串的示例代码:
private func createQRFromString(str: String) -> CIImage? {
let stringData = str.data(using: .utf8)
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(stringData, forKey: "inputMessage")
filter?.setValue("H", forKey: "inputCorrectionLevel")
return filter?.outputImage
}
var qrCode: UIImage? {
if let img = createQRFromString(str: "Hello world program created by someone") {
let someImage = UIImage(
ciImage: img,
scale: 1.0,
orientation: UIImage.Orientation.down
)
return someImage
}
return nil
}
@IBAction func qrcodeBtnAct(_ sender: Any) {
qrImag.image = qrCode
}
请推荐我 [1]: Is there a way to generate QR code image on iOS
你说你需要二维码reader,但这里你只是在谈论二维码生成。这是两个不同的话题。
就二维码生成而言,您只需将您的四个值放入二维码负载中即可。现在您只是传递一个字符串文字,但您可以只更新该字符串以将您的四个属性包含在您想要的任何易于解码的格式中。
话虽这么说,在编写这样的应用程序时,您通常不仅希望能够从应用程序内部扫描二维码,而且还希望能够从任何二维码扫描应用程序(例如内置的相机应用程序)中扫描二维码,并且它打开你的应用程序。这会影响您对有效载荷进行编码的方式。
典型的答案是使您的 QR 码有效负载成为 URL,例如,使用通用 link。参见 Supporting Universal Links in Your App。因此,首先关注启用通用 links.
一旦通用 link 开始工作(最初根本不使用二维码),问题就变成了如何以编程方式创建通用 link提供给上面的 QR 生成器例程。为此 URLComponents
是编码 URLs 的好工具。例如,参见 Swift GET request with parameters。只需使用您的通用 link 作为 URL.
FWIW,虽然我建议只将通用 link URL 编码到您的 QR 码中,但另一种选择是其他一些深度 linking 模式,例如 branch.io.