Cocoa 制作 WKWebView 命令 + link 点击在新的中打开 window
Cocoa make WKWebView command + link click open in new window
当用户在单击 link 时按下 cmd 键时,我试图让 WKWebView 在新的 window/tab 中打开 link,就像在任何浏览器中一样。我找不到本地人 api 来这样做(或者我只是不擅长谷歌搜索)。任何人都可以告诉我如何在没有肮脏黑客的情况下实现这一点吗?我是不是错过了一个天真的api?
使用 WKNavigationDelegate。
在导航过程中,
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;
方法将被调用。 WKNavigationAction 对象有一个 modifierFlags 属性 告诉你在 clic 期间是否按下了 cmd 键。
如果是,那么随心所欲地打开一个新的 window/tab 和一个新的 WKWebView 并从这里开始加载页面(我个人发送了一个事件,其中包含稍后将处理的所有信息).
最后,通过调用
取消您当前的 Web 视图导航
decisionHandler(WKNavigationActionPolicyCancel) ;
当用户在单击 link 时按下 cmd 键时,我试图让 WKWebView 在新的 window/tab 中打开 link,就像在任何浏览器中一样。我找不到本地人 api 来这样做(或者我只是不擅长谷歌搜索)。任何人都可以告诉我如何在没有肮脏黑客的情况下实现这一点吗?我是不是错过了一个天真的api?
使用 WKNavigationDelegate。
在导航过程中,
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;
方法将被调用。 WKNavigationAction 对象有一个 modifierFlags 属性 告诉你在 clic 期间是否按下了 cmd 键。
如果是,那么随心所欲地打开一个新的 window/tab 和一个新的 WKWebView 并从这里开始加载页面(我个人发送了一个事件,其中包含稍后将处理的所有信息).
最后,通过调用
取消您当前的 Web 视图导航decisionHandler(WKNavigationActionPolicyCancel) ;