Как авторизовать или нет WebView для загрузки URL страницы - PullRequest
2 голосов
/ 25 февраля 2012

Я исследую, как управлять WebView (для приложений Mac), чтобы разрешить определенные URL, такие как iO с

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

Заранее спасибо.

1 Ответ

1 голос
/ 17 ноября 2012

Я наконец понял это.

Установите делегата WebPolicyDelegate для вашего экземпляра WebView:

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];
    }

}
...