Webview 检测 javascript 错误或 url 更改
Posted
技术标签:
【中文标题】Webview 检测 javascript 错误或 url 更改【英文标题】:Webview detect javascript errors, or url changes 【发布时间】:2017-03-23 13:11:49 【问题描述】: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 - 如果不是,则 url 更改。 3 或者如果不是,我可以通过 javascript 在我的控制器中调用一个函数吗?我从我的控制器调用一个函数到 javascript?
无论哪种方式,我都需要一个问题的解决方案,我的 webview 出现了问题。
【问题讨论】:
【参考方案1】:Web 视图可以与 Javascript 代码通信,但通信有限且复杂。要回答您的具体问题:
-
Javascript 错误 - 您可以直接在网页中检测到它们。
如果成功,网址会更改 - 您可以直接在网页中执行此操作 (
window.location = ...
)。
查看控制器更改错误 - 您可以通过将 URL 更改为特定 URL 来做到这一点,例如window.location = 'http://myredirect?error=Execution+failed'
。您的 Web 视图控制器可以使用其委托轻松检测 URL 的变化并做出相应的反应。
【讨论】:
以上是关于Webview 检测 javascript 错误或 url 更改的主要内容,如果未能解决你的问题,请参考以下文章
在 webview 中启用 Javascript 时,Android Webview 未检测到链接点击
使用 PHP / Javascript 检测应用内浏览器 (WebView)
通过Android WebView中的javascript检测点击HTML按钮