2015-01-06 1 views
0

이라는 UIViewController 클래스가 있는데이 클래스는 UIWebView입니다.iOS UIWebViewDelegates가 호출되지 않았습니다.

@implementation WebScreenViewController 

@synthesize urlString; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.webView.delegate = self; 
    // Do any additional setup after loading the view. 
    [self gotoUrl:self.urlString]; 
    //[self gotoUrl:@"http://www.google.com"]; 

} 


#pragma mark - UIWebView Delegates 
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 

    NSURL* url = [request URL]; 
    NSString* urlStr = url.absoluteString; 
    NSLog(@"shouldStartLoadWithRequest. URLStr = %@", urlStr); 

    return YES; 
} 
-(void)webViewDidStartLoad:(UIWebView *)webView 
{ 
    NSLog(@"webViewDidStartLoad"); 
} 
-(void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSString* html = [webView stringByEvaluatingJavaScriptFromString:@"document.body"]; 
    NSLog(@"webViewDidFinishLoad: HTML string = %@", html); 

} 
-(void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
{ 
    NSLog(@"didFailLoadWithError. ERROR: %@", error); 
} 

#pragma mark - Member Methods 

-(void)gotoUrl:(NSString*)urlStr 
{ 
    NSLog(@"Calling website %@ in UIWebView...", urlStr); 
    NSURL* url = [NSURL URLWithString:urlStr]; 
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url]; 
    [self.webView loadRequest:urlRequest]; 
} 

@end 

위의 코드가 작동 잘 내 테스트 장치 중 하나를 제외하고는 다른 작동하지 않았다 다음은 클래스 구현 파일입니다. 그것은 최신 아이폰 OS 8.1.2로 제 아이팟 터치에서 작동했습니다. 하지만 iOS 버전 7.0이 설치된 iPad3에서는 작동하지 않습니다. 내 iPad3에서 실행하면 gotoUrl: 메서드가 호출되고 "Calling website % @ in UIWebView ..."라는 로그가 표시됩니다. 그리고 그게 다야. 대리인으로부터 더 이상 로그를받지 못합니다. 인터넷 연결을 확인하기 위해 Safari를 동일한 장치에서 사용해 보았습니다.

+2

같은 첫 번째 라인을 교체 할 수 있습니다 [gotoUrl :]에 null이 있습니까? 대리자를 설정하기 전에 먼저 – Shai

+0

이 초기화되었는지 여부를 확인하십시오. 그것이 null의 경우, 최초로 초기화 해, 그 delegate를 설정합니다. –

+0

글쎄, 내가 말했듯이, 위의 코드는 내 iPod에서 사용할 때 잘 작동한다. 의미, 모든 NSLogs가 올바르게 인쇄됩니다. 문제는 내 iPad에서 실행하면 작동하지 않는다는 것입니다. 그래서 다른 OS가있는 다른 장치에서 작동하지 않는다는 점이 무엇이 잘못되었는지 알지 못합니다. –

답변

0

iPhone의 다른 스토리 보드를 & iPad 용으로 사용하는 경우 웹 스토리 콘센트를 iPad 스토리 보드에 올바르게 연결했는지 확인하십시오.

또한 웹보기가 0이 아닌지 확인하십시오. 이 도움이

희망 ..

+0

내가 위에서 말한 int를 말했듯이, 실제로는 내 장치 중 하나에서 작동하지만 다른 장치에서는 작동하지 않습니다. 어쩌면 그것은 그것 때문에가 아닙니다. 어쨌든 고마워. –

0
NSString * strURL = [NSString stringWithFormat:@"http://www.google.com/"]; 
NSURL *loadURL=[NSURL URLWithString:strURL]; 
NSURLRequest *loadRequest = [NSURLRequest requestWithURL:loadURL]; 
[webView loadRequest:loadRequest]; 
webView.delegate=self; 

보기에서이 방법을 시도 부하를했다거나 URL이있는 경우 self.webview인지 확인할 않았다이

NSString * strURL = [NSString stringWithFormat:self.urlString]; 
+0

나를 위해 작동하지 않았다 :( – AsifHabib