2

我在尝试加载有效 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);
    }
}
4

2 回答 2

0

我为你创建了一个例子试试这个https://www.dropbox.com/s/lch00t0vjrydg77/ActivityIndi​​cator.zip

于 2013-09-17T13:51:49.163 回答
0

我没有看到你在任何地方设置 WebViews 委托。如果确定在代码中创建 WebView,那么你应该设置它的委托并实现它。

在设置 WebView 时添加以下行

     [newsWebViewNews setDelegate:self];

UIWebViewDelegate并在类头文件中实现< >。

于 2012-07-11T02:11:07.850 回答