iOS UIWebView-限制HTML路径

iOS UIWebView-限制HTML路径,html,ios,xcode,uiwebview,Html,Ios,Xcode,Uiwebview,我有一个UIWebview,它正在加载一个特定的网站部分(新闻)。我想阻止用户访问网站的其他部分,这意味着他们只能呆在新闻部分/阅读pdf文章 我已经构建了一组代码,但遗憾的是,由于一些技术限制,目前还无法对它们进行测试。下周才能访问它。然而,我认为这将是一个很好的时间询问这里,让高级用户查看我的代码草案,看看它是否可行 - (void)viewDidLoad { [super viewDidLoad]; NSString *urlAddress = @"http://w

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

我已经构建了一组代码,但遗憾的是,由于一些技术限制,目前还无法对它们进行测试。下周才能访问它。然而,我认为这将是一个很好的时间询问这里,让高级用户查看我的代码草案,看看它是否可行

- (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文章。如果用户试图转到其他路径,则应检测当前url并将其重定向回新闻部分。

要限制特定url的加载,请执行以下操作

webView.delegate = self;
并添加以下函数

- (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
}

要限制特定url的加载,请执行以下操作

webView.delegate = self;
并添加以下函数

- (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
}

嗯,我得到了自我授权部分。但是,第二部分,我可以将其反转并包括NSRange吗?这样,如果URL字符串中包含新闻或pdf,则返回YES以允许,其他所有内容都返回NO//restrict。因为我限制了除新闻部分/文章外的所有内容。希望我所说的能确保你能做到,我做了很多次,效果很好(当然:)我最迟周一会试试,拿到我的工作站。顺便说一句,如果我使用你的函数,我可以删除我的代码集,只包含第一部分,对吗?是的,只需将它们添加到此函数体中。嗯,我得到了自委托部分。但是,第二部分,我可以将其反转并包括NSRange吗?这样,如果URL字符串中包含新闻或pdf,则返回YES以允许,其他所有内容都返回NO//restrict。因为我限制了除新闻部分/文章外的所有内容。希望我所说的能确保你能做到,我做了很多次,效果很好(当然:)我最迟周一会试试,拿到我的工作站。顺便说一句,如果我使用你的函数,我可以删除我的代码集,只包含第一部分,对吗?是的,只需将它们添加到此函数体中即可