Bool Web视图功能无法按计划运行

时间:2013-03-14 21:32:16

标签: ios objective-c uiwebview uiwebviewdelegate

基本上,我想要的是当按下某个按钮并且你在Google页面上时执行此功能[self.navigationController popViewControllerAnimated:YES];的功能。但即使我不在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;
}

2 个答案:

答案 0 :(得分:4)

您应该在此方法中查看是否点击了UIWebViewNavigationTypeFormSubmitted按钮或点击了链接UIWebViewNavigationTypeLinkClicked

if (navigationType == UIWebViewNavigationTypeLinkClicked) {
}

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

答案 1 :(得分:1)

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

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