1)开启webview硬件加速
2)开启javascript支持
3)需要设置setWebChromeClient
4)5.0以上手机需要webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
示例代码:
webView = new WebView(this);
webView.setLayerType(View.LAYER_TYPE_HARDWARE,new Paint());
/***打开本地缓存提供JS调用**/
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportMultipleWindows(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.getSettings().setAppCacheMaxSize(1024 * 1024 * 10);
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
webView.getSettings().setAppCachePath(appCachePath);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
webView.getSettings().setSupportMultipleWindows(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setSaveFormData(false);
webView.getSettings().setLoadWithOverviewMode(false);
webView.setWebViewClient(new MyWebViewClient());
webView.setWebChromeClient(new MyWebChromeClient());
webView.setVerticalScrollBarEnabled(false);
webView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));复制代码
WebViewClient设置
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startsWith("intent")||url.startsWith("youku")){
return true;
}
Uri uri = Uri.parse(url);
handlerAction(uri);
return super.shouldOverrideUrlLoading(view, url);
}
复制代码