ios - 如何生成包含详细信息的二维码

标签 ios swift qr-code

我没有使用 QRCode 生成器和扫描仪的经验,但我尝试从下面显示的字符串生成 QRCode。我想用一些值来生成它,比如位置地址、姓名、手机号码、邮件、网站、任何文件。谁能帮我做这件事。

@IBAction func generate(_ sender: Any) {
    if let mystring = mytextfield.text       {

        let data = mystring.data(using: .ascii, allowLossyConversion: false)
        let filter = CIFilter(name: "CIQRCodeGenerator")
        filter?.setValue(data, forKey: "InputMessage")
        let ciImage = filter?.outputImage
        let  transform = CGAffineTransform(scaleX: 10, y: 10)
        let transformimage = ciImage?.transformed(by: transform)
        let image = UIImage(ciImage: transformimage!)
        img.image=image
        saveimg.isEnabled=true
    }


}

@IBAction func saveimage(_ sender: Any) {
    screenshotmethod()
}
func screenshotmethod(){
    let layer = UIApplication.shared.keyWindow!.layer
    let scale = UIScreen.main.scale
    UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale)
    layer.render(in: UIGraphicsGetCurrentContext()!)
    let screenshot = UIGraphicsGetImageFromCurrentImageContext()

    UIGraphicsEndImageContext()

    UIImageWriteToSavedPhotosAlbum(screenshot!, nil, nil, nil)
}

最佳答案

尝试将Dictionary中的详细信息转换为JSON数据,然后将其设置为CIFilter

var jsonDict = [String: Any]()
jsonDict.updateValue("Your_Name", forKey: "name")
jsonDict.updateValue("1234567890", forKey: "number")
guard let jsonData = try? JSONSerialization.data(withJSONObject: jsonDict, options: [.prettyPrinted]) else {
    return
}
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(jsonData, forKey: "InputMessage")

关于ios - 如何生成包含详细信息的二维码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54128399/

相关文章:

iphone - 来自数组的 UIGridView

ios - Realm swift : Convert Results to Swift Array

ios - Swift:如何使用扩展表添加应用程序共享功能

ios - 根据用户选择更改应用本地化

ios - 无法将类型 'UIBarButtonItem' 的值转换为 'UITableViewCell'

android - 黑莓 ZXing Android 源代码

ios - 在 Objective-C 中混合 block 和委托(delegate)

ios:Libity 服务器上的 worklight apns 证书位置

android - 如何在android中的相机预览中绘制矩形

ios - 如何检查扫描的二维码是否包含除数字之外的任何内容