android WebView(3)WebViewClient
WebViewが自分でサブページをロードするデフォルトで、WebViewがロードしたページのハイパーリンクボタンをクリックすると、システムが持っているブラウザを起動して新しいページをロードします.WebViewを自分でロードするには、次のコードを追加する必要があります.
SelfWebViewClientは、次のようにWebViewClientから継承されます.
WebViewClientの一般的なライフサイクルは次のとおりです.
ロードに成功した場合
onPageStarted-->> onLoadResource-->>onPageFinished-->> onLoadResource
ロードに失敗した場合
onPageStarted-->>
onLoadResource-->>onReceivedError-->>onPageFinished-->>onPageFinished
WebView Clientの一般的な用途は3つあります.1、WebViewにサブページを自分でロードさせる.2、WebViewのロードに失敗した場合、失敗したページを表示する.3、ページのログインパスワードを覚えます.この3つの機能は上のコードで簡単に紹介されています.
WebViewはサブページから戻る上で、サブページを直接WebViewでロードする方法について説明しましたが、サブページから前のページに戻る方法について説明しました.これは出発時間が必要で、私は戻りキーでトリガーします.コードは以下の通りです.
webView.setWebViewClient(new SelfWebViewClient());
SelfWebViewClientは、次のようにWebViewClientから継承されます.
public class SelfWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
//
loadFailure.setVisibility(View.VISIBLE);
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
//
}
@Override
public void onReceivedHttpAuthRequest(WebView view,
HttpAuthHandler handler, String host, String realm) {
super.onReceivedHttpAuthRequest(view, handler, host, realm);
//webview
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
//
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// , 。
view.loadUrl(url);
return true
}
}
WebViewClientの一般的なライフサイクルは次のとおりです.
ロードに成功した場合
onPageStarted-->> onLoadResource-->>onPageFinished-->> onLoadResource
ロードに失敗した場合
onPageStarted-->>
onLoadResource-->>onReceivedError-->>onPageFinished-->>onPageFinished
WebView Clientの一般的な用途は3つあります.1、WebViewにサブページを自分でロードさせる.2、WebViewのロードに失敗した場合、失敗したページを表示する.3、ページのログインパスワードを覚えます.この3つの機能は上のコードで簡単に紹介されています.
WebViewはサブページから戻る上で、サブページを直接WebViewでロードする方法について説明しましたが、サブページから前のページに戻る方法について説明しました.これは出発時間が必要で、私は戻りキーでトリガーします.コードは以下の通りです.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack(); //goBack() WebView
return true;
} else{
finish();
}
return false;
}