如何授权WebView加载页面URL

时间:2012-02-25 17:43:25

标签: macos delegates webview controls boolean

我研究如何控制WebView(适用于Mac应用程序)以允许特定网址,例如使用

的iOs

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

提前谢谢。

1 个答案:

答案 0 :(得分:1)

我终于想出了这个。

为您的WebView实例设置WebPolicyDelegate delegate

self.webview.policyDelegate = self;

然后在您的委托中实施– webView:decidePolicyForNavigationAction:request:frame:decisionListener:方法:

-(void)webView:(WebView *)webView
decidePolicyForNavigationAction:(NSDictionary *)actionInformation
        request:(NSURLRequest *)request
          frame:(WebFrame *)frame
decisionListener:(id < WebPolicyDecisionListener >)listener
{
    int actionKey = [[actionInformation objectForKey: WebActionNavigationTypeKey] intValue];
    if (actionKey == WebNavigationTypeOther)
    {
        [listener use];
    }
    else
    {
        //
        // Here is where you would intercept the user navigating away 
        // from the current page, and use `[listener ignore];`
        //

        NSLog(@"\n\nuser navigating from: \n\t%@\nto:\n\t%@",
              [webView mainFrameURL],
              [[request URL] absoluteString]);

        [listener use];
    }

}