WebView:如何检测我是否在原始网页上并执行某种方法 [英] WebView:How to detect if I am on the original web page and execute a certain method

查看:50
本文介绍了WebView:如何检测我是否在原始网页上并执行某种方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在某些情况下,我有这种方法可以在Web视图中返回上一个网页,并且效果很好.但是,我想实现一个功能,该功能检查我是否在原始网页上,如果是,当我按后退"按钮时,它将带我到导航视图控制器.原始页面是此代码[webView loadHTMLString:self.item.description baseURL:[NSURL URLWithString:self.item.link]];.现在,我需要弄清楚如何检查我是否在该页面上以及是否需要执行以下代码: [self.navigationController popViewControllerAnimated:YES]; .任何帮助将不胜感激.

I have this method that goes back to previous webpage in a web view under certain circumstance and it works fine. However, I want to implement a function that checks if I am on the original web page and if so, when I push the back button it takes me to a navigation view controller. The original page is this code [webView loadHTMLString:self.item.description baseURL:[NSURL URLWithString:self.item.link]];. Now I need to figure out how to check if I am on that page and if so I need to execute this code: [self.navigationController popViewControllerAnimated:YES];. Any help will be appreciated.

- (void)back
{
    if ([webView canGoBack]) {
        [webView goBack];
    } else {
        [webView loadHTMLString:self.item.description baseURL:[NSURL URLWithString:self.item.link]];    
    }
}

推荐答案

您可以使用 UIWebViewDelegate 的委托方法 shouldStartLoadWithRequest 来检查URL中包含的内容.如果找到它,那就去 NavigationController

You can use the delegate method shouldStartLoadWithRequest of UIWebViewDelegate to check what contains in the url. if you find it then just go NavigationController

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

    if ([[request.URL absoluteString] rangeOfString:@"http://yourURL"].location!=NSNotFound) {
       [self.navigationController popViewControllerAnimated:YES];.    
    }
}

这篇关于WebView:如何检测我是否在原始网页上并执行某种方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆