17

WebViewでタイムアウト値を設定する方法はありますか?URLが遅すぎて応答できない場合は、WebViewをタイムアウトにします。

4

3 に答える 3

11

getProgress ()を呼び出して現在のページの進行状況をチェックするタイマーを設定することでこれを行うことができ、指定された時間が経過してもしきい値よりも小さい場合は、現在のページの読み込みを閉じることができます。

于 2010-11-29T10:53:41.727 に答える
5

の代わりにのonLoadResourceメソッドを使用できます。このような:WebViewClientTimer

webView.setWebViewClient(new WebViewClient() {

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return false;
    }

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        progressDialog.show();
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        Log.d("WEBCLIENT", "onPageFinished");
    }

    @Override 
    public void onLoadResource(WebView view, String url) {
        super.onLoadResource(view, url);
        Log.d("WEBCLIENT","onLoadResource");

        if(webView.getProgress() == 100) {
            progressDialog.dismiss();
        }    
    }
}
于 2015-07-21T11:05:58.400 に答える
1

私が使う

@Override
    public void onReceivedError(WebView view, int errorCod,String description, String failingUrl) {
        final Dialog dialog = new Dialog(MainActivity.this, android.R.style.Theme_NoTitleBar_Fullscreen);
        dialog.setContentView(R.layout.alert_dialog);
        Button btTryAgain = dialog.findViewById(R.id.bt_try_again);
        btTryAgain.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v){
                recreate();
            }
        });
        dialog.show();
        //Toast with error conection
        Toast.makeText(getApplicationContext(), "Your Internet Connection May not be active Or " + description , Toast.LENGTH_LONG).show();
    }

ここで、-alert_dialog-は、再試行するボタンのあるレイアウトです。

于 2020-12-27T22:48:52.263 に答える