我是开发者Boxy http://boxyapp.co,一个著名的 Inbox by Gmail 原生包装器,我想询问是否有人能够帮助解决我从开发第一天起就一直在努力解决的问题。
问题是这样的:链接inbox.google.com http://inbox.google.com and gmail.com http://gmail.com与其他网站的工作方式不同:单击它们不会触发我的网络视图上的导航操作(我正在使用WKWebView
具体来说,但使用旧的也存在问题WebView
)。因此,我很难在适当的时候在外部浏览器中打开链接。
因此,在撰写本文时,我依靠一种可怕的黑客手段来打开链接:拦截对document.body
使用 javascript(使用事件侦听器),然后通过调用本机应用程序强制它们在外部浏览器上打开。
我最好的猜测是,Gmail/Inbox 应用程序执行了一些 JavaScript 魔法,以便跟踪电子邮件内所有链接的点击,并且不知何故,这会干扰标准行为。
有谁知道我如何解决这个问题?
我已经尝试过的事情
- 实施该方法
-webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
of WKUIDelegate
。不起作用:该方法被调用但request
与相关的navigation action
是空的。
我找到了解决方案。此问题是由于单击链接时,Gmail 尝试打开 about:blank 窗口,然后运行 javascript 来重定向链接,而不是使用 target=_blank 打开。
您需要确保Gmail可以正确接收创建的窗口的句柄。
- (WKWebView *)webView:(WebUI *)webView
createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration
forNavigationAction:(WKNavigationAction *)navigationAction
windowFeatures:(WKWindowFeatures *)windowFeatures
您需要确保此委托方法正确返回新创建的 wkwebview。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)