【问题标题】:Catch mailto links in WebView在 WebView 中捕获 mailto 链接
【发布时间】:2012-09-17 20:48:32
【问题描述】:

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

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

【问题讨论】:

  • didStartProvisionalLoadForFrame 已经很好地将我的 webview 保持在我指定的范围内。有没有办法让它更健壮地检查 URI 方案?

标签: macos cocoa webview


【解决方案1】:

您正在应用程序中实现一个 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
}

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2011-06-10
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    相关资源
    最近更新 更多