国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

android 下webview 如何判斷404?

瀏覽:104日期:2024-02-23 16:24:14

問(wèn)題描述

我在使用

@Overridepublic void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError(view, request, error); PtrCLog.d('WebFragment', 'onReceivedError: ' + '');}

這個(gè)方法并沒(méi)有被回掉查看了一下說(shuō)是需要API23 才可以。。有大佬知道有別的方法獲取404嗎?

問(wèn)題解答

回答1:

new WebViewClient() { @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);if (errorCode == 404) { doSomething();} } @Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {super.onReceivedError(view, request, error);if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { int errorCode = error.getErrorCode(); if (errorCode == 404) {doSomething(); }} }};回答2:

在onPageStarted里邊跑一個(gè)AsyncTask,在AsyncTask里用OkHttpClient之類(lèi)的Http客戶(hù)端對(duì)需要訪(fǎng)問(wèn)的URL進(jìn)行一次請(qǐng)求,取得code

class WebViewStatusRequester extends AsyncTask<String, String, Integer> {@Overrideprotected void onPreExecute() { super.onPreExecute(); web.setVisibility(View.GONE);}@Overrideprotected void onPostExecute(Integer result) { super.onPostExecute(result); if(result == 1) {web.setVisibility(View.VISIBLE); } else if(result == 0) {showLoadFail(); }}@Overrideprotected Integer doInBackground(String... params) { String url = params[0]; if(url.substring(0, 4).equals('file') == false) {try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(url).build(); Response response = client.newCall(request).execute(); if(response.isSuccessful()) {return 1; } else {Log.i('TAG', 'fail code:' + response.code());return 0; }} catch (IOException e) { e.printStackTrace();}return 0; } return 1;} }

在這里實(shí)際上是Webview和OkHttpClient進(jìn)行了加載,只是AsyncTask跑的時(shí)候把WebView隱藏起來(lái)了,確認(rèn)是200了就顯示,不是200就顯示加載失敗的頁(yè)面

標(biāo)簽: web
相關(guān)文章:
主站蜘蛛池模板: 顺义区| 宁南县| 六枝特区| 湟源县| 博白县| 峨眉山市| 三穗县| 马边| 石门县| 宁陕县| 开阳县| 昆山市| 稷山县| 田阳县| 河南省| 永德县| 泗洪县| 平江县| 玉树县| 曲麻莱县| 肇源县| 浙江省| 清水河县| 巴彦淖尔市| 金华市| 黎城县| 常熟市| 皮山县| 临颍县| 桐城市| 古丈县| 分宜县| 都兰县| 巴林右旗| 南丹县| 筠连县| 阿克苏市| 宁安市| 巴林左旗| 卢龙县| 无锡市|