загрузка url-адреса из qr-кода в web view swift Xcode

Привет я создаю QR-код читателя и работать большой, но тета открытый url в 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 ответ

  1. openURL получит устройство для обработки URL-адреса, если ваше приложение не имеет определенной схемы URL, которая соответствует URL-адресу, он, вероятно, будет передан в веб-браузер, если другое приложение не обрабатывает эту схему.

    Если вы хотите отобразить его в 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 let вместо того, чтобы ловить любые ошибки, но это основной принцип.

    Вам просто нужно добавить webView в представление