を実行しようとしていますUIWebView
が、ユーザーが指定された URL の他の部分にアクセスすることを許可していません。彼らは、私が許可した特定のページにしか行けず、他のページには行けないようなものです。
やり方がよくわからない- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
ので、間違っているかもしれません。問題は、このメソッドを有効にすると、ロードされますwebpage
が、ブラウズできないことです。私が許可するセクションでさえありません。
1) 重要なコードが抜けていませんか? 2) コードに抜けているものはありますか? それともコードが間違っているのはなぜですか?
Xcodeは初めてなので、皆さんが私に与えたり教えたりできるすべてのガイダンスが必要です。以下は、View Controller からの私のコードです。
EDIT1: Xcode によって事前に作成されたメソッドはありますか、または独自のメソッドを作成する必要がありUIWebView
ますか? 絶対URLを常にチェックし、指定したもの以外に変更された場合、指定したURLに戻るようなメソッドを作成することは可能ですか?
私の.hで
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIWebViewDelegate>
{
IBOutlet UIWebView *webView;
}
@property (nonatomic, retain) UIWebView *webView;
@end
私の.mで
#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];
}