我正在开发一个 iOS 应用程序,我试图用它UIWebView
来显示各种网站。最近我完成了将 Javascript 注入UIWebView
到捕获window.open
、window.close
和window.opener.focus
. 简而言之,为此,我注入了覆盖上述 JS 函数的 JS,其中包括iframe
使用我可以在应用程序方法中捕获的特定方案创建一个webView:shouldStartLoadWithRequest:navigationType
。现在一切正常,包括window.open
创建一个新的UIWebView
而不是在同一个窗口中加载。
但是现在,问题出现了,窗口之间的 JS 通信没有可行的解决方案。如果子窗口尝试调用window.opener
or window.parent
,它总是返回一个空值,因此,它无法与原始 Web 视图进行通信。
为了了解哪些 iOS 浏览器能够有效地执行窗口到窗口的通信,我发现在我的 iPhone 上的 9 个浏览器中,只有 Safari 能够成功地有效地执行这种通信。这让我相信有些东西UIWebView
阻止了完整的 JS 窗口到窗口的通信。
有没有人成功让 UIWebView 与所有 JS 逻辑完全集成,即窗口到窗口的通信?或者有证据证明 JS 窗口到窗口的通信是不可能的?任何方向或建议表示赞赏。谢谢!