Я пытаюсь сделать UIWebView
, но не позволяя пользователю посещать другую часть данного URL-адреса. Что-то вроде они могли только идти конкретные страницы, где я позволяю им идти, а не другие.iOS UIWebView Restriction
Я не слишком уверен в методе - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
, поэтому я, возможно, совершил ошибку. Теперь проблема заключается в том, что если я включу этот метод, я загрузился в webpage
, но не смог просмотреть его. Даже раздел, который я допускаю.
Я хотел бы знать, если 1) Я пропускаю какой-либо важный код ?, 2) Я что-то пропустил в коде или почему мой код не так?
Является новым для Xcode, поэтому мне потребуются все указания, которые вы, ребята, можете дать/научить меня. Ниже мой код из контроллера просмотра.
EDIT1: Есть ли какой-либо готовый метод Xcode, или мне нужно создать свой собственный метод, чтобы при просмотре UIWebView
, и когда они нажимают на другую ссылку, если это что-то другое, кроме того, что я указываю, запрос отклоняется? Можно ли создать такой метод, чтобы он постоянно проверял абсолютный URL-адрес, и если он изменился на что-то другое, кроме того, что я укажу, он вернется к указанному URL-адресу?
в my.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];
}
Кажется, что ваш код попадает в бесконечный цикл. Удалить [webView reload]; из условия if и попробуйте. – san