Android webViewブロックurl
11483 ワード
AndroidがwebViewを呼び出してWebページをロードする場合、あるリンクがこのリンクを実行しないことをブロックし、指定を実行して他のactivityページにジャンプする必要があります.WebviewのsetWebViewClientメソッドには、いくつかのapiがあります. 1 2 3 4 5 1 2 3 4 5
だから私のニーズはshouldOverrideUrlLoadingメソッドで処理することです 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Webviewのその他の設定 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10 11
WebSettingsの一般的な方法の紹介: 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13
WebViewClientの方法の全解:
// url , url ( )
public WebResourceResponse shouldInterceptRequest(WebView view, String url)
// , true webview , 。 , URL, , , , 。
public boolean shouldOverrideUrlLoading(WebView view, String url)
だから私のニーズはshouldOverrideUrlLoadingメソッドで処理することです
webView.setWebViewClient(new WebViewClient() {
@Override
// , true webview , 。 , URL, , , , 。
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// url , ( url ), url
if (url.contains("/mproduct-")) {
Intent i = new Intent(MainActivity.this, MainActivity.class);
startActivity(i);
return true;
} else {
return false;
}
}
});
Webviewのその他の設定
// , ,
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();//
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onDestroy() {
super.onDestroy();
// webview
webView.clearCache(true);
}
private void initView() {
webView = (WebView) findViewById(R.id.webView);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setBuiltInZoomControls(true);//
settings.setSupportZoom(false);//
settings.setUseWideViewPort(false);// webview
settings.setLoadWithOverviewMode(true);//
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//
}
WebSettingsの一般的な方法の紹介:
setJavaScriptEnabled(true); // js
setPluginsEnabled(true); //
setUseWideViewPort(false); // webview
setSupportZoom(true); //
setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //
supportMultipleWindows(); //
setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // webview
setAllowFileAccess(true); //
setNeedInitialFocus(true); // webview requestFocus webview
webview webSettings.setBuiltInZoomControls(true); //
setJavaScriptCanOpenWindowsAutomatically(true); // JS
setLoadWithOverviewMode(true); //
setLoadsImagesAutomatically(true); //
WebViewClientの方法の全解:
doUpdateVisitedHistory(WebView view, String url, boolean isReload) //( )
onFormResubmission(WebView view, Message dontResend, Message resend) //( )
onLoadResource(WebView view, String url) // , ( ) 。
onPageStarted(WebView view, String url, Bitmap favicon) // , loading , 。
onPageFinished(WebView view, String url) // 。 , , loading , 。
onReceivedError(WebView view, int errorCode, String description, String failingUrl)// ( )
onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,String realm)//( )
onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) // webview https 。
onScaleChanged(WebView view, float oldScale, float newScale) // (WebView )
onUnhandledKeyEvent(WebView view, KeyEvent event) //(Key )
shouldOverrideKeyEvent(WebView view, KeyEvent event)// 。
shouldOverrideUrlLoading(WebView view, String url)
// , true webview , 。 , URL, , , , 。