2

重複の可能性:
UIWebViewがロードされているときにUIActivityIndi​​catorViewをどのように実装しますか?(iPhone ObjC)

私のアプリの一部を使用すると、ユーザーはアプリケーションの一部を「更新」できます。「更新」を押すUIButtonと、PHPスクリプトが読み込まれますが、スクリプトの読み込みにUIWebViewは約2分かかります。この間、「 [更新]ボタンを非表示にし、Webページの読み込みが完了したときに再度表示します。

これを行うための最良の方法は何でしょうか?

私はこれまでにこれを持っています:

- (void)webViewDidStartLoad:(UIWebView *)webUpdate {
    [btnUpdate setHidden:YES];
}


- (void)webViewDidFinishLoad:(UIWebView *)webUpdate {
    [btnUpdate setHidden:NO];
}

これを使用して解決:

NSString *myUrl = webView.request.URL.absoluteString;

    if ([myUrl isEqualToString:@"http://www.website.com/finalpage.php"]) {
        [btnUpdate setHidden:NO];
    }
4

3 に答える 3

1

UIWebViewDelegateにはコールバックがあるため、Web ビューの進行状況を追跡できます。

- (void)webViewDidStartLoad:(UIWebView *)webView {
        [btnUpdate setHidden:YES];
    }

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
               NSLog(@"Loading: %@", [request URL]);
               return YES;
            }

- (void)webViewDidFinishLoad:(UIWebView *)webView {
               NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL],
                    (webView.loading?@"NO":@"YES"));
    [btnUpdate setHidden:NO];
            }


- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
               NSLog(@"didFail: %@; stillLoading:%@", [[webView request]URL],
                    (webView.loading?@"NO":@"YES"));
    [btnUpdate setHidden:NO];
    //alert
            }
于 2013-01-03T18:46:59.270 に答える
1

Apple のドキュメントを参照してください

UIWebView のコールバック メソッド用。具体的に見て

– webViewDidStartLoad:
– webViewDidFinishLoad:

webview の読み込みが開始されたときに更新ボタンを非表示または無効にしてから、終了時またはエラーが発生したときに有効にすることができます。

編集:現在のURLを確認できます

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];

また、webViewDidStartLoad で int プロパティをインクリメントしてから、webViewDidFinishLoad でデクリメントして、いつロードが終了したかがわかるようにする必要があります。

于 2013-01-03T18:41:33.213 に答える
0

あなたのページがロードされたとき、uiwebviewにはコールバック関数があると思います。これに関するドキュメントを読む必要があります

于 2013-01-03T18:43:14.150 に答える