有没有办法解决这种疯狂?我正在尝试为信息亭构建一个浏览器应用程序,该应用程序限制了对运行其他应用程序的大量需求,并且只停留在一个网站内。
我研究并发现decidePolicyForNavigationAction
应该可以满足我的需求,但是如何开始过滤 URI 方案(mailto://
,irc://
等)?谢谢!
您正在应用程序中实现 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
}