我最近开始从事一个主要在 UIWebView
上运行的 IOS 项目。现在我的 UIWebView
是 UIWebViewDelegate
的委托(delegate),我遇到的是我的应用程序不响应 window.close
和其他
事件。现在我可以在我的 JavaScript
可能调用的 windowshouldStartLoadWithRequest
委托(delegate)方法中通过 href
获取一个新的 HTTP
请求。
我希望知道是否有办法在我的 IOS
应用程序中监听 window
事件,例如 window.close
并检索目标。我想尽可能避免注入(inject)
任何类型的 JavaScript
直接进入页面!
有人愿意解释这是否可能以及为什么吗?
最佳答案
使用 UIWebView
如果不注入(inject)一些 JavaScript,就无法实现这一点。即使是较新的 WKWebView
也仍然需要 JavaScript 注入(inject)才能完成这项工作。
您将注入(inject) JavaScript 来覆盖 window.close
函数并触发位置更改,例如 location.href = "uniquescheme://window.close";
正如您所说,可以在 shouldStartLoadWithRequest
中处理。
类似于:
[self.webView stringByEvaluatingJavaScriptFromString:@"window.close = function () { location.href = 'uniquescheme://window.close'; }"]
关于javascript - 通过 UIWebView 在 JavaScript 中处理 Window.close - Obj C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31842899/