0

有没有办法解决这种疯狂?我正在尝试为信息亭构建一个浏览器应用程序,该应用程序限制了对运行其他应用程序的大量需求,并且只停留在一个网站内。

我研究并发现decidePolicyForNavigationAction应该可以满足我的需求,但是如何开始过滤 URI 方案(mailto://,irc://等)?谢谢!

4

1 回答 1

2

您正在应用程序中实现 WebView 来浏览网页,对吗?
如果是,请查看WebPolicyDelegate 协议参考。
尤其是以下代表可能会感兴趣:

               - (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
}
于 2012-09-17T21:26:41.750 回答