Hii All,
我想在调用以下方法时加载新页面....我使用以下代码..
(void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id )listener
{
[[myWebView mainFrame] loadRequest:someRequest];
}
但这个方法被多次调用,如果我使用[listener use]而不是loadRequest我的应用程序崩溃它工作正常但是启动了点击的url。但我想加载一些其他网址怎么可能?
答案 0 :(得分:2)
您只需添加[listener ignore]
方法调用。
- (void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id )listener
{
[listener ignore];
[[myWebView mainFrame] loadRequest:someRequest];
}
答案 1 :(得分:1)
如你所说,它被多次调用,所以你必须注意这一点:
[actionInformation valueForKey: @"WebActionNavigationTypeKey"]
该值应为WebNavigationType
枚举之一:
WebNavigationTypeLinkClicked,
WebNavigationTypeFormSubmitted,
WebNavigationTypeBackForward,
WebNavigationTypeReload,
WebNavigationTypeFormResubmitted,
WebNavigationTypeOther
点击链接后,您将首先获得WebNavigationTypeLinkClicked
,此处您可以决定是否加载点击的网页或其他内容。
在您获得页面加载WebNavigationTypeOther
之后,您可以立即忽略它。
答案 2 :(得分:1)
嗯,在这种方法中,必须返回一个值。 您应该决定是否接受此网址。 因此,如果WebView转到您不想要的页面, 你应该回来忽略。
让webView转到您的其他网址:[myWebView setMainFrameURL:otherUrlStr]
由于