UIWebView
을 수행하려고하지만 사용자가 주어진 URL의 다른 부분을 방문하도록 허용하지 않습니다. 그들이 내가 갈 수있게 해주는 특정 페이지 만 갈 수있는 것과 같은 것.iOS UIWebView 제한
나는 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
메서드에 대해 너무 확신하지 못하므로 실수했을 수 있습니다. 문제는 지금이 방법을 활성화하면 webpage
에로드되지만 탐색 할 수 없다는 것입니다. 심지어 섹션을 허용하지 않습니다.
1) 중요한 코드가 누락 되었습니까? 2) 코드에 아무것도 표시되지 않았거나 코드가 잘못되었습니다.
Xcode에 익숙하지 않으므로 여러분이 줄 수있는 모든 지침이 필요합니다. 아래보기 컨트롤러에서 내 코드입니다.
EDIT1 : Xcode에서 사전 구축 된 메소드가 있습니까? 아니면 UIWebView
을 탐색 할 때 다른 링크를 클릭 할 때와 같이 자신이 지정한 메소드가 있어야합니다. 요청이 거부됩니까? 절대 URL을 지속적으로 확인하고 내가 지정한 것 이외의 다른 것으로 변경되면 지정된 URL로 돌아갈 수있는 메서드를 만드는 것이 가능합니까? shouldStartLoadWithRequest : 내하는 .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