在WebView中捕获mailto链接

时间:2012-09-17 20:48:33

标签: macos cocoa webview

有这种疯狂的方法吗?我正在尝试为自助服务终端构建一个浏览器应用程序,该应用程序限制了运行其他应用程序的需求,并且只是停留在一个网站中

我研究并发现decidePolicyForNavigationAction应该适用于我想要的内容,但是如何开始过滤URI方案(mailto://irc://等)?谢谢!

1 个答案:

答案 0 :(得分:2)

您正在应用程序中实现WebView以浏览网页,对吧? 如果是,请查看WebPolicyDelegate Protocol参考 特别是以下代表可能会感兴趣:

               - (void)webView:(WebView *)webView 
decidePolicyForNewWindowAction:(NSDictionary *)actionInformation 
                       request:(NSURLRequest *)request 
                  newFrameName:(NSString *)frameName 
              decisionListener:(id < WebPolicyDecisionListener >)listener

使用上述代理,您可以验证任何请求,包括mailto个请求 快速示例如何检测URL方案并决定是否阻止:

NSLog(@"Request URL scheme = %@",[[request URL] scheme]);
if([[[request URL] scheme]isEqualToString:@"mailto"])
{
    [listener ignore]; // Block Request
} 
else 
{
    [listener use]; // Allow Request
}