iphone - webkitview - wkwebview to uiwebview




UIWebView webViewDidFinishLoad가 iOS라고하지 않습니다. (4)

UIWebView를 사용하여 문서 디렉토리에서 일부 파일을로드하고 있습니다. UIWebView의 대리자를 설정하고 webViewDidStartLoadwebViewDidFinishLoad 인 대리자의 두 메서드에 응답합니다. webViewDidStartLoad 수신하고 있지만 webViewDidFinishLoad 메서드를받지 못하고 있습니다.

아래는 코드입니다.

@interface MyView: UIViewController <UIWebViewDelegate> {
           UIWebView *webView;
}

@property (nonatomic, retain) UIWebView *webView;

========================= Class ===========================

-(void)viewDidLoad {
    CGRect webFrame = [[UIScreen mainScreen] applicationFrame];
    mWebView = [[UIWebView alloc] initWithFrame:webFrame];
    mWebView.delegate = self;
    mWebView.scalesPageToFit = YES;
    [self.view addSubview:mWebView];
        NSString *path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", pathString]];

    [mWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]] ];
}

// Delegate methods

-(void)webViewDidStartLoad:(UIWebView *)webView {
    NSLog(@"start");    
}   

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"finish");   
}


-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
    NSLog(@"Error for WEBVIEW: %@", [error description]);
}

나에게 무슨 일이 일어나는지 알려주세요. didFailLoadWithError 대리자 메서드에서 오류가 발생하지 않습니다.

참고 : - 내가로드하는 파일은 거대합니다. 3MB라고 말합니다.

감사

============= 편집 됨 ==================

매우 큰 파일을로드 할 때 대리인은 매우 오랜 시간이 지나면 알려지지 않았지만 작은 파일의 경우 모든 것이 잘 작동합니다.


WebView 대리인

  1. MBProgessHUD 다운로드
  2. 프로젝트에 추가하십시오.
  3. 페이지로드로드 (*)가 시작되면 페이지로드가 시작되고 페이지가 성공적으로로드 된 후 숨기기

.h 파일

    @interface WebViewViewController : UIViewController <MBProgressHUDDelegate,   UIWebViewDelegate>
   {
     MBProgressHUD *HUD;

   }

.m 파일

- (void)webViewDidStartLoad:(UIWebView *)webView
{
HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[self.navigationController.view addSubview:HUD];

HUD.delegate = self;
HUD.labelText = @"Loading";
[HUD show:YES];
}

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
     [HUD hide:YES];
}

뷰의 .h 파일에 delegate ()를 구현하고 뷰에 대리자를 연결하십시오. 이것은 나를 위해 그것을 고정.


아마도 오류가 발생했을 것입니다. 구현 - –webView:didFailLoadWithError: 확인하십시오.


웹 뷰가 실제로로드를 마칩니까? 실패를 잡으려면 webView:didFailLoadWithError: 구현해야합니다.

당신은 실패 또는 성공 메시지를 얻지 못하기 때문에. 로드하려는 데이터에 문제가있을 수 있습니다.

webView에 HTML 문자열 ( "Hello World!")을로드하고 성공했는지 확인하십시오. 그렇다면 문제는 데이터 리소스 또는 경로입니다.