iOS UIWebView – 限制HTMLpath

我有一个UIWebview,它正在加载一个特定的网站部分(新闻)。 我想阻止用户访问网站的其他部分,这意味着他们应该只留在新闻部分/阅读PDF文章。

我已经构build了一组代码,但是由于某些技术上的限制,可悲的是无法testing它们。 将只能在下周访问它。 不过,我认为现在是时候在这里问一下,让高级用户查看我的草案代码,看看是否可行。

- (void)viewDidLoad { [super viewDidLoad]; NSString *urlAddress = @"http://www.imc.jhmi.edu/news.html"; NSURL *url =[NSURL URLWithString:urlAddress]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; [webView loadRequest:requestObj]; //finding current url and lead it back if it strayed off NSString *currentURL = webView.request.URL.absoluteString; NSRange range1 = [currentURL rangeOfString:@"news"]; NSRange range2 = [currentURL rangeOfString:@"pdf"]; 

我应该使用

  if (range1.location ==NSNotFound){ currentURL = @"http://www.imc.jhmi.edu/news.html"; [webView reload]; }else if (range2.location ==NSNotFound){ currentURL = @"http://www.imc.jhmi.edu/news.html"; [webView reload]; } } 

或者这组代码?

  if (range1.location ==NSNotFound){ currentURL = @"http://www.imc.jhmi.edu/news.html"; url = [NSURL URLWithString:currentURL [webView loadRequest:[NSURLRequest requestWithURL:url]]; }else if (range2.location ==NSNotFound){ currentURL = @"http://www.imc.jhmi.edu/news.html"; url = [NSURL URLWithString:currentURL [webView loadRequest:[NSURLRequest requestWithURL:url]]; } 

这个代码有什么问题吗? 如果是的话,请指出为什么不行,因为我还在学习阶段。 在这个阶段将是一个学习更多的好机会。 我正在寻找的逻辑是它会加载最初的新闻部分。 UIWebView应该只显示那里的新闻部分/ PDF文章。 如果用户试图去其他path,它应该检测当前的url,并将其redirect到新闻部分。

要限制某些url的加载,请执行以下操作

 webView.delegate = self; 

并添加以下function

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *urlString = [[request URL]absoluteString]; if(ulrString == @"restricted ur") return NO; //Restrict else return YES; //Allow }