webview.setWebChromeClient(new WebChromeClient()); webview.setWebViewClient(new MyWebViewClient()); WebSettings webSettings = webview.getSettings(); //设置WebView属性,能够执行Javascript脚本 webSettings.setJavaScriptEnabled(true); //设置可以访问文件 webSettings.setAllowFileAccess(true); //设置支持缩放 // webSettings.setBuiltInZoomControls(true); //自适应屏幕 webview.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//设置js可以直接打开窗口,如window.open(),默认为false
webSettings.setJavaScriptCanOpenWindowsAutomatically(true); webSettings.setSupportZoom(true);//是否可以缩放,默认true webSettings.setBuiltInZoomControls(true);//是否显示缩放按钮,默认false webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式 webSettings.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题 webSettings.setAppCacheEnabled(true);//是否使用缓存,要是webView中药加载视频,这个必须打开 webSettings.setDomStorageEnabled(true);//DOM Storagewebview.loadUrl(url);public class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); view.getSettings().setJavaScriptEnabled(true); } }
以上可以完整的加载一个web页面
下面我们说一下:web页面的中js交互调起分享或者是跳转页面(js调Android中的方法)share.openShare(...);webview.addJavascriptInterface(new JsObject(this), "share");public class JsObject { private Context context; public JsObject(Context context) { this.context = context; } @JavascriptInterface public void openShare(final String title, final String shareUrl, final String content) { //调起分享的代码,参数js修改 //或者是进行页面跳转 } }//当webView要调起支付时,操作系统会将支付宝的URL拦截,导致你打不开支付宝页面。webview.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if( url.startsWith("http:") || url.startsWith("https:") ) { return false; } try{ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity( intent ); }catch(Exception e){} return true; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); view.getSettings().setJavaScriptEnabled(true); } }); //当webView加载视频关闭网页声音依旧播放时,添加以下代码@Override public void onClick(View view) { switch (view.getId()) { case R.id.back: //页面返回时: webview.loadUrl("about:blank"); finish(); break; } } @Override public void onPause() { super.onPause(); webview.onPause(); webview.pauseTimers(); } @Override public void onResume() { super.onResume(); webview.resumeTimers(); webview.onResume(); } @Override protected void onDestroy() { webview.destroy(); webview = null; super.onDestroy(); } 希望以上对您会有帮助,有什么问题可以留言哦。
WebView大全(与Js交互,支付宝页面打不开,加载视频返回后仍然有声音等等)
最新推荐文章于 2024-04-28 18:22:10 发布