webView decisionPolicyForNavigationAction用于在默认浏览器中打开链接

时间:2012-03-16 20:12:49

标签: objective-c macos webview

我正在编写基于Web的聊天客户端的GUI包装器问题。基本上当有人在聊天室发布链接时,我想在点击时在默认浏览器中打开。我正在使用webkit decisionPolicyForNavigationAction。

- (void)webView:(WebView *)sender decidePolicyForNavigationAction:(NSDictionary *)actionInformation
    request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id <WebPolicyDecisionListener>)listener 
{
NSString *host = [[request URL] host];

    if (![host hasSuffix:@"chatsimply.com"])
    {
        [listener ignore];
        NSWorkspace * ws = [NSWorkspace sharedWorkspace];
        [ws openURL:request.URL];
    }

        [listener use];
}

这似乎没有看到聊天室中的链接,我不知道为什么。我一直在搜索一些论坛和Apple文档,没有太多运气,所以任何有关如何处理这个的帮助/文档将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您打算在Safari中打开链接,那么应该这样做。

[[UIApplication sharedApplication] openURL:request.URL];

如果没有突出显示链接(或者您想要做什么),那么我建议NSLogging主机字符串以查找它是否具有您想要的后缀。