你好我创建了一个二维码阅读器并且工作得很好,但是在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)!)
}
}
答案 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添加到视图
即可