使用webView加载不同的页面:decisionPolicyForNavigationAction:request:frame:decisionListener:method

Sid*_*Sid 5 macos cocoa webkit objective-c

Hii全部,

我想在调用以下方法时加载新页面....我使用以下代码..



(void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id )listener
{
  [[myWebView mainFrame] loadRequest:someRequest];
}

但是这个方法被多次调用,如果我使用[listener use]而不是loadRequest我的应用程序崩溃它工作正常但是启动了点击的url.但我想加载一些其他网址怎么可能?

Pet*_*uza 1

正如你所说,它被调用了多次,所以你必须注意这一点:
[actionInformation valueForKey: @"WebActionNavigationTypeKey"]

该值应该是枚举之一WebNavigationType
WebNavigationTypeLinkClicked,
WebNavigationTypeFormSubmitted,
WebNavigationTypeBackForward,
WebNavigationTypeReload,
WebNavigationTypeFormResubmitted,
WebNavigationTypeOther

WebNavigationTypeLinkClicked单击链接后您将获得第一个结果,在这里您可以决定是否加载单击的页面或其他内容。
当你得到WebNavigationTypeOther哪个是页面加载后,你可以忽略它。