iOS UIWebView限制

iOS UIWebView限制,ios,webview,Ios,Webview,我正在尝试执行UIWebView,但不允许用户访问给定URL的其他部分。他们只能进入我允许他们进入的特定页面,而不能进入其他页面 我不太确定-(BOOL)webView:(UIWebView*)webView应该使用request:(NSURLRequest*)request-navigationType:(UIWebView-navigationType)navigationType方法,所以我可能在那里犯了一个错误。现在的问题是,如果启用此方法,我将加载到网页,但无法浏览。甚至连我允许的部分

我正在尝试执行
UIWebView
,但不允许用户访问给定URL的其他部分。他们只能进入我允许他们进入的特定页面,而不能进入其他页面

我不太确定
-(BOOL)webView:(UIWebView*)webView应该使用request:(NSURLRequest*)request-navigationType:(UIWebView-navigationType)navigationType
方法,所以我可能在那里犯了一个错误。现在的问题是,如果启用此方法,我将加载到
网页
,但无法浏览。甚至连我允许的部分都没有

我想知道1)我是否遗漏了任何重要的代码?2)我是否遗漏了代码中的任何内容,或者为什么我的代码是错误的

我是Xcode新手,所以我需要你们能给我/教我的所有指导。下面是我在视图控制器中的代码

EDIT1:Xcode是否有任何预构建的方法,或者我是否必须创建自己的方法,这样当他们浏览
UIWebView
时,当他们单击另一个链接时,如果不是我指定的,请求会被拒绝?是否有可能创建一个方法,使其不断检查绝对url,如果它更改为我指定的内容以外的其他内容,它将返回到我指定的url

在我的

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIWebViewDelegate>

{
    IBOutlet UIWebView *webView;
}

@property (nonatomic, retain)  UIWebView *webView;  

@end

此委托方法webView:shouldStartLoadWithRequest:navigationType:在web视图开始加载帧之前发送。如果web视图应该开始加载内容,则返回值YES;否则,不会


当未找到带有range1和range2的currentURL时,您的方法返回NO。

您的代码似乎进入了无限循环。删除[webView重新加载];从if条件开始尝试。啊!我现在明白了。非常感谢你。Xcode是否有任何预构建的方法,或者我是否必须创建自己的方法,以便在web视图中单击url时发送该方法,如果它不是我指定/允许的,它将重定向到我想要的url?
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize webView;

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *currentURL = [[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];
        return YES;
    }else if (range2.location ==NSNotFound){
        currentURL = @"http://www.imc.jhmi.edu/news.html";
        [webView reload];
        return YES;
    }
    return NO;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    webView.scalesPageToFit=YES;
    webView.delegate = self;

    NSString *urlAddress = @"http://www.imc.jhmi.edu/news.html";
    NSURL *url =[NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];

}