我在尝试加载有效 URL 时看到以下消息并且没有网页:
delegate (webView:decidePolicyForNavigationAction:request:frame:decisionListener:)
等待 10 秒后未能返回。主运行循环模式:kCFRunLoopDefaultMode
任何人都可以帮助我吗?
使用:iOS 4.x 上的 iPad 2
评论:在 iOS 5.x 上似乎没问题
使用的代码:
newsWebView=[[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, self.view.bounds.size.height-50.0-adHeight)];
newsWebView.dataDetectorTypes = UIDataDetectorTypeAll;
newsWebView.backgroundColor=[UIColor blackColor];
[newsWebView setScalesPageToFit:YES];
[self.view addSubview:newsWebView];
newsWebView.delegate=self;
[self webViewLoadRequest];
- (void)webViewLoadRequest
{
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[newsWebView loadRequest:requestObj];
}
//Delegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
return YES;
}
- (void)webViewDidStartLoad:(UIWebView *)webView {
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
CGFloat scale=newsWebView.contentScaleFactor;
NSString *jsCommand = [NSString stringWithFormat:@"document.body.style.zoom = %f;",scale];
[newsWebView stringByEvaluatingJavaScriptFromString:jsCommand];
[rightButton setEnabled:YES];
if(titleStatus==1){
self.title=[newsWebView stringByEvaluatingJavaScriptFromString:@"document.title"];
}
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
if (error.code == 101) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Cannot Open Page"
message:[error localizedDescription] delegate:nil
cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
} else if (error.code == -1003) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Cannot Open Page"
message:@"Server cannot be found." delegate:nil
cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
} else if (error.code == -1009) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Cannot Open Page"
message:@"No network connection." delegate:nil
cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
} else if (error.code == -999) {
// user probably stopped the web loading
} else {
NSLog(@"Error: %@", error.description);
}
}