WebView は、Web ページから返されたエラー コード情報を処理します。


このセクションの概要:

あなたの会社が HTML5 モバイル APP を作成している場合、Web ページにアクセスすると WebView を通じて Web ページが表示されます。 WebView のデフォルト エラーが直接ポップアップする場合、存在しない、または他のエラーが 404、401、403、30X およびその他のエラー ステータス コードを報告する プロンプト ページはあまりフレンドリーではないかもしれませんが、WebViewClient の onReceivedError() メソッドをオーバーライドして目的を達成できます。 目的の効果を得るには、一般的な方法が 2 つあります。1 つは、アセット ディレクトリにエラー メッセージを作成することです。 HTML ページでは、エラーが発生したとき、つまり onReceivedError() が呼び出されたときに、webView のloadUrl を呼び出してジャンプします。 エラー ページ: wView.loadUrl("file:///android_asset/error.html");! または、別のページを作成することもできます。 通常、レイアウトまたは大きな画像は非表示に設定されています。ページエラーが発生した場合は、レイアウトまたは画像を表示してください。 以下に簡単な例を書いてみましょう。


1. ページエラー、カスタム Web ページの読み込み:

実行中の効果図:

1.gif

キーコード:

wView.setWebViewClient(new WebViewClient() {
//设置在webView点击打开的新网页在当前界面显示,而不跳转到新的浏览器中
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
}

@Override
public void onReceivedError(WebView view, int errorCode, String description,
    String failingUrl) {
        super.onReceivedError(view, errorCode, description, failingUrl);
        wView.loadUrl("file:///android_asset/error.html");
    }
});

2. ページエラー、対応する View

の表示ニング効果図 :

2.gif

実装コード:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private WebView wView;
    private ImageView img_error_back;
    private Button btn_refresh;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        wView = (WebView) findViewById(R.id.wView);
        img_error_back = (ImageView) findViewById(R.id.img_error_back);
        btn_refresh = (Button) findViewById(R.id.btn_refresh);
        wView.loadUrl("http://www.baidu.com");
        wView.setWebViewClient(new WebViewClient() {
            //设置在webView点击打开的新网页在当前界面显示,而不跳转到新的浏览器中
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }

            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                super.onReceivedError(view, errorCode, description, failingUrl);
                wView.setVisibility(View.GONE);
                img_error_back.setVisibility(View.VISIBLE);
            }
        });
        btn_refresh.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        wView.loadUrl("http://www.baidu.com");
        img_error_back.setVisibility(View.GONE);
        wView.setVisibility(View.VISIBLE);
    }
}

3. サンプルコードのダウンロード:

WebViewDemo8.zip: WebViewDemo8.zip をダウンロード


このセクションの概要:

うーん、とてもシンプル 1 つのセクション、ははは、とてもシンプルですね。さらに、さまざまなエラー コードに応じてさまざまなエラー コードを設定することもできます。 ページ ~ ここで展開しましょう。WebView の基本的な学習はここで終わりです。次のセクションからネットワーク プログラミングを始めます。 難点の 1 つは、ソケット ネットワーク プログラミングです。もちろん、以前に学習したことがあれば、Xiaozhu がその方法を教えてくれます。 ソケット〜乞うご期待〜絵文字を投稿しないのは慣れてないよ、笑〜3.gifありがとう〜