0

基本上,我想要的是一个[self.navigationController popViewControllerAnimated:YES];在按下某个按钮并且您在 Google 页面上时执行此功能的功能。但即使我不在 Google 页面上,该功能也会发生。有什么我可能会丢失的吗?

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
    if(wasClicked)
    {
        if([[request.URL absoluteString] rangeOfString:@"google"].location!=NSNotFound)
        {
            [self.navigationController popViewControllerAnimated:YES];
        }
    }

    return YES;
}
4

2 回答 2

4

如果单击按钮UIWebViewNavigationTypeFormSubmitted或单击链接,您应该在此方法中检查UIWebViewNavigationTypeLinkClicked

if (navigationType == UIWebViewNavigationTypeLinkClicked) {
}

在发布每个步骤的问题之前,您至少应该阅读UIWebViewDelegate的文档。我写这篇文章是因为在上一个问题中您询问了它是如何工作的,您在其他帖子中得到了答案,您复制了答案并在此处粘贴为问题,而不是自己尝试。

于 2013-03-14T21:35:19.093 回答
1

如果您在 Google 页面上,那么大多数链接很可能会针对字符串中某处包含“google”的 URI 发起加载请求。我不确定这一点,但我认为即使是谷歌搜索结果也会先加载一个谷歌 URL 进行跟踪,然后再重定向到点击的实际页面。

尝试添加NSLog(@"URL: %@", [request.URL absoluteString]);到您的函数中,看看为什么该语句评估为YES.

于 2013-03-14T21:52:41.597 回答