我是 Boxy 的开发者,它是一个著名的 Inbox by Gmail 本地封装器。自从开发以来,我一直在苦苦挣扎,想知道是否有人能帮助我解决问题。
问题是:在 inbox.google.com 和 gmail.com 上的链接与其他网站上的链接处理方式不同:点击它们不会在我的 webview 上触发导航操作(具体来说,我正在使用一个
因此,在撰写本文时,我依赖于一个可怕的 hack 来打开链接:使用 javascript 拦截
问题是:在 inbox.google.com 和 gmail.com 上的链接与其他网站上的链接处理方式不同:点击它们不会在我的 webview 上触发导航操作(具体来说,我正在使用一个
WKWebView
,但是使用旧的 WebView
也存在这个问题)。所以当需要在外部浏览器中打开链接时,我很难做到。因此,在撰写本文时,我依赖于一个可怕的 hack 来打开链接:使用 javascript 拦截
document.body
上的点击事件(使用事件监听器),然后通过调用原生应用程序强制在外部浏览器中打开它们。
我最好的猜测是 Gmail/Inbox 应用程序执行了一些 javascript 魔法,以便跟踪邮件内所有链接的点击。不知何故,这干扰了标准行为。
有人知道我如何解决这个问题吗?
我已经尝试过的事情
- 实现
WKUIDelegate
的方法-webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
。没有用:该方法被调用,但与navigation action
相关联的request
是空的。
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://google.com"]];
来加载链接吗? - esh