我正在嘗試創建一個QR應用程序,但我沒有得到最後一步的工作。在Xcode的另一個ViewController中打開QR鏈接
今天,當我進行掃描時,我得到了一個提醒結果。我希望將該鏈接直接發送到我的webview控制器,並在我的webView中讀取地址,而不是顯示警報。
ViewController.swift
func reader(_ reader: QRCodeReaderViewController, didScanResult result: QRCodeReaderResult) {
reader.stopScanning()
dismiss(animated: true) { [weak self] in
let alert = UIAlertController(
title: "Hittade",
message: String (format:"%@", result.value, result.metadataType),
preferredStyle: .alert
)
alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil))
self?.present(alert, animated: true, completion: nil)
}
}
webview.swift
@IBOutlet var containerView: UIView? = nil
var webView: WKWebView?
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string: "MY RESULT URL HERE")
let myRequest = URLRequest(url: myURL!)
_ = webView?.load(myRequest)
}
編輯 感謝您的幫助@sharon!
我已經完成了這項工作。 不過,也有一些錯誤消息
見下
鏈接的圖片ViewController.swift
func reader(_ reader: QRCodeReaderViewController, didScanResult result: QRCodeReaderResult) {
reader.stopScanning()
dismiss(animated: true) { [weak self] in
let alert = UIAlertController(
title: "Hittade",
message: String (format:"%@", result.value, result.metadataType),
preferredStyle: .alert
)
var qrLink: String?
qrLink = "\(result.value)\(result.metadataType)"
performSegue(withIdentifier: "WebView", sender: self)
alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil))
self?.present(alert, animated: true, completion: nil)
}
}
func prepare(for segue: UIStoryboardSegue, sender: Any?){
if segue.identifier == "WebView" {
let webView = segue.destination as! webview
webView.qrLink = "%@"
}}
func reader(_ reader: QRCodeReaderViewController, didSwitchCamera newCaptureDevice: AVCaptureDeviceInput) {
if let cameraName = newCaptureDevice.device.localizedName {
print("Switching capturing to: \(cameraName)")
}
}
func readerDidCancel(_ reader: QRCodeReaderViewController) {
reader.stopScanning()
dismiss(animated: true, completion: nil)
}
}
webview.swift
import AVFoundation
import UIKit
import WebKit
class WebView: UIViewController, QRCodeReaderViewControllerDelegate {
@IBOutlet var containerView: UIView? = nil
var webView: WKWebView?
override func viewDidLoad() {
super.viewDidLoad()
setNeedsStatusBarAppearanceUpdate()
view.backgroundColor = UIColor(red: 109/255, green: 167/255, blue: 215/255, alpha: 1)
var qrLink: String?
var webView: UIWebView?
super.viewDidLoad()
let myURL = URL(string: qrLink!)
let myRequest = URLRequest(url: myURL!)
webView = UIWebView(frame: CGRect(x: 0, y: 0, width:
UIScreen.main.bounds.width, height:
UIScreen.main.bounds.height))
webView?.loadRequest(myRequest)
view.addSubview(webView!)
}
}
這聽起來很合理! :-) 我該如何做到這一點最簡單的入門? (我是一個很大的初學者) –
查看我的回答以上 (試着回答,但它在你的文章上方) –