WebViewKawalan ini merupakan kawalan yang sangat penting dalam sistem Android, dan ia tidak akan menyebabkan situasi yang disebut oleh poster. Apa yang mungkin dilihat oleh poster asal ialah paparan permukaan.
Apabila WebView daripada loadUrl(String url) dipanggil, WebView mula memuatkan halaman web, tetapi apabila ia tidak dimuatkan, ia masih akan memaparkan latar belakang putih asalnya Halaman web akan dipaparkan hanya selepas ia dimuatkan . Ini mungkin bermakna paparan menjadi kosong dan ia mengambil sedikit masa sebelum halaman web boleh dibuka. Malah, ia sentiasa dimuatkan, tetapi ia dimuatkan dengan perlahan dan anda tidak dapat melihat sebarang perubahan.
Hos boleh menggunakan WebView.setWebViewClient untuk menghantar WebViewClient tersuai. Juga WebView.setWebChromeClient. Gantikan beberapa fungsi ini:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
//页面开始加载
}
@Override
public void onPageFinished(WebView view, String url) {
//页面加载完毕
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//加载出现失败
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
//加载过程回调,progress是接受到的数据的百分比
}
});
Jika poster mengkonfigurasi WebView seperti di atas, maka dalam loadUrl(String url), anda boleh melihat panggilan balik fungsi ini. Kandungan dalam soalan boleh dijawab daripada Log.
Ini memang berlaku, saya juga pernah menemuinya, dan mendapati bahawa jika anda tidak memanggil wv_viewerweb.removeAllViews(); // wv_viewerweb.destroy(); // wv_viewerweb = null; masalah tidak akan wujud
WebView
Kawalan ini merupakan kawalan yang sangat penting dalam sistemAndroid
, dan ia tidak akan menyebabkan situasi yang disebut oleh poster. Apa yang mungkin dilihat oleh poster asal ialah paparan permukaan.Apabila
WebView
daripadaloadUrl(String url)
dipanggil,WebView
mula memuatkan halaman web, tetapi apabila ia tidak dimuatkan, ia masih akan memaparkan latar belakang putih asalnya Halaman web akan dipaparkan hanya selepas ia dimuatkan . Ini mungkin bermakna paparan menjadi kosong dan ia mengambil sedikit masa sebelum halaman web boleh dibuka. Malah, ia sentiasa dimuatkan, tetapi ia dimuatkan dengan perlahan dan anda tidak dapat melihat sebarang perubahan.Hos boleh menggunakan
WebView.setWebViewClient
untuk menghantarWebViewClient
tersuai. JugaWebView.setWebChromeClient
. Gantikan beberapa fungsi ini:Jika poster mengkonfigurasi
WebView
seperti di atas, maka dalamloadUrl(String url)
, anda boleh melihat panggilan balik fungsi ini. Kandungan dalam soalan boleh dijawab daripadaLog
.1. Saya benar-benar menghadapi situasi ini semalam
2. Analisis sebab: A. Saya cadangkan poster menggunakan Charles untuk menangkap paket
Ini memang berlaku, saya juga pernah menemuinya, dan mendapati bahawa jika anda tidak memanggil wv_viewerweb.removeAllViews();
// wv_viewerweb.destroy();
// wv_viewerweb = null; masalah tidak akan wujud
Adakah masalah selesai? ? ? Saya juga terjebak, tolong beri saya penyelesaian...