2017-03-23 31 views
0

网页视图检测JavaScript错误,或网址变更

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?

我需要一个问题的解决方案,无论哪种方式,我在我的web视图中遇到问题。

回答

0

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

  1. Javascript错误 - 您可以直接在您的网页内检测它们。
  2. 如果成功,URL更改 - 您可以直接在网页内执行此操作(window.location = ...)。
  3. 视图控制器在发生错误时发生更改 - 您可以通过将URL更改为特定的URL来实现此目的。 window.location = 'http://myredirect?error=Execution+failed'。您的网络视图控制器可以使用其委托轻松检测URL中的更改并作出相应的反应。