Webview检测javascript错误或网址更改

时间:2017-03-23 13:11:50

标签: ios webview swift3

  

class ViewController: UIViewController, UIWebViewDelegate{
    @IBOutlet var containerView: UIView!
    @IBOutlet var webView: UIWebView!
   override func loadView() {
        super.loadView()
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        webView.delegate = self
        if let url = URL(string: "http://www.google.com/") {
            let request = URLRequest(url: url)
            webView.loadRequest(request)
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }       
    func webViewDidFinishLoad(_ webView: UIWebView) {
        print("webview finished load")
        print(webView.request?.url)
    }

所以我需要的是尝试检测1-javascript错误。 2 - 或如果不是,网址会更改。 3或者如果没有,我可以通过javascript调用我的控制器中的函数吗?我从我的控制器调用函数到javascript?

无论哪种方式我都需要解决问题的方法,我在网络视图中遇到了问题。

1 个答案:

答案 0 :(得分:0)

Web视图可以与Javascript代码通信,但通信有限且复杂。回答您的具体问题:

  1. Javascript错误 - 您可以直接在网页中检测到它们。
  2. 如果成功,网址会发生变化 - 您可以直接在网页(window.location = ...)内完成。
  3. 查看控制器更改错误 - 您可以通过将网址更改为特定网址来实现,例如window.location = 'http://myredirect?error=Execution+failed'。您的Web视图控制器可以使用其委托轻松检测URL的更改并做出相应的反应。