【发布时间】:2013-05-18 05:40:03
【问题描述】:
我是 Cocoa 开发的新手。
我已阅读有关使用 WebPolicyDelegate 的信息。但是,我似乎无法让它按应有的方式工作。我希望该应用程序打开外部链接并在 chrome 或 safari 等网络浏览器中启动它。这应该只在点击链接时发生。
目前,我的应用程序的默认 url 也与我的应用程序的 webview 正在执行的操作同时打开到网络浏览器。
我已将 policyDelegate 设置为我的 webview,并使用以下代码实现它:
- (void)webView:(WebView *)webView
decidePolicyForNavigationAction:(NSDictionary *)actionInformation
request:(NSURLRequest *)request
frame:(WebFrame *)frame
decisionListener:(id <WebPolicyDecisionListener>)listener
{
if ([actionInformation objectForKey:WebActionElementKey]) {
[listener ignore];
[[NSWorkspace sharedWorkspace] openURL:[request URL]];
}
else {
[listener use];
}
}
任何帮助将不胜感激! :)
【问题讨论】:
标签: macos cocoa webview webkit