3

WebView がページの読み込みをいつ終了したかを知りたいです。私はこれにかなり慣れていないので、何か提案があるかどうか疑問に思っています。ページの読み込み中に「読み込み画面」を作成する必要があります。これは私の基本的なコードです:

- (void)viewDidLoad {


NSString *urlAddress = @"http://google.se";

//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];

//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

//Load the request in the UIWebView.
[webView loadRequest:requestObj];
}

ありがとう!

4

3 に答える 3

8

ビューの読み込みが完了すると、読み込みの成功と読み込みの失敗という2 つの異なるコールバックがあります。どちらもUIWebViewDelegate プロトコルの一部です。

それを実装し、自分自身を Web ビューのデリゲートとして設定します。次に実装

- (void)webViewDidFinishLoad:(UIWebView *)webView

ローディング画面を削除して実装できるように、ローディングがいつ終了したかを知る

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

失敗したかどうかを確認して、無限の読み込み画面の代わりにユーザーに適切なメッセージを表示できるようにします。

于 2012-05-01T10:11:53.737 に答える
3

UIWebViewDelegate Protocoll を見てください。デリゲートを設定すると、次のようなメッセージが表示されます– webViewDidFinishLoad:

それがあなたの望みですよね?

于 2012-05-01T10:12:19.453 に答える
0

私はDOMの経験が乏しいですが、検索した結果、document.readyStateが優れたオプションであることがわかりました。

w3schoolsから:

定義と使用法readyStateプロパティは、現在のドキュメントの(読み込み中)ステータスを返します。

このプロパティは、次の4つの値のいずれかを返します。

初期化されていません-まだロードを開始していません-インタラクティブにロードしています-十分にロードされており、ユーザーは完全に操作できます-完全にロードされています

したがって、これを使用して、UIWebViewがいつドキュメントをロードしたかを確認します。

- (void)readyState:(NSString *)str
{ NSLog(@"str:%@",str);

if ([str isEqualToString:@"complete"]||[str isEqualToString:@"interactive"]) {
    NSLog(@"IT HAS BEEN DONE");
    [pageLoadingActivityIndicator stopAnimating];
}

}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
 //other code...
 [self readyState:[browserWebView stringByEvaluatingJavaScriptFromString:str]];
}
于 2013-02-01T15:05:19.193 に答える