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设置
@Overridepublic 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);}复制代码