我试图让WKWebView在用户单击链接时按下cmd键时在新窗口/选项卡中打开链接,就像在任何浏览器中一样。我找不到这样做的本机api(或者我只是在谷歌搜索上很烂)。谁能给我一个主意,我该如何在没有恶意黑客的情况下实现这一目标?我想念一个天真的api吗?
答案 0 :(得分:0)
使用 WKNavigationDelegate 。
在导航过程中,
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;
方法将被调用。 WKNavigationAction对象具有 modifierFlags 属性,该属性告诉您在clic期间是否按下了cmd键。
如果是这样,请执行任何操作以打开带有新WKWebView的新窗口/选项卡,然后从此处开始加载页面(我个人发送了一个事件,其中包含所有稍后将要处理的信息)。
最后,通过调用
取消当前的Web视图导航decisionHandler(WKNavigationActionPolicyCancel) ;