从qr代码加载url到web视图swift Xcode

时间:2016-05-23 10:45:34

标签: ios swift webview uiwebview qr-code

你好我创建了一个二维码阅读器并且工作得很好,但是在safari中打开了你的网址,我想在另一个场景中的webview swift中打开它

if metadataObj.type == AVMetadataObjectTypeQRCode {

    // If the found metadata is equal to the QR code metadata then update the status label's text and set the bounds

    let barCodeObject = videoPreviewLayer?.transformedMetadataObjectForMetadataObject(metadataObj as AVMetadataMachineReadableCodeObject) as! AVMetadataMachineReadableCodeObject

    qrCodeFrameView?.frame = barCodeObject.bounds;

    if metadataObj.stringValue != nil {

        messageLabel.text = metadataObj.stringValue
        //if the result is url...
        UIApplication.sharedApplication().openURL(NSURL(string: metadataObj.stringValue)!)

    }

}

1 个答案:

答案 0 :(得分:0)

openURL将使设备处理URL,除非您的应用程序具有与URL相匹配的已定义URL方案,否则它可能会传递到Web浏览器,除非另一个应用程序处理该方案。

如果您想在webView中呈现它,请创建一个webView并传入您要加载的URL ...

if metadataObj.type == AVMetadataObjectTypeQRCode {

        // If the found metadata is equal to the QR code metadata then update the status label's text and set the bounds

        let barCodeObject = videoPreviewLayer?.transformedMetadataObjectForMetadataObject(metadataObj as AVMetadataMachineReadableCodeObject) as! AVMetadataMachineReadableCodeObject

        qrCodeFrameView?.frame = barCodeObject.bounds;

        if metadataObj.stringValue != nil {

            messageLabel.text = metadataObj.stringValue
            //if the result is url...

            let url = NSURL(string: metadataObj.stringValue)!
            let request = NSURLRequest(url: url)
            webView.loadRquest(request)
        }
    }

我建议将那些let语句放在if中,而不是捕获任何错误,但这是基本原则。

您只需将webView添加到视图

即可