android WebView常用属性,调起其他app

在android中,经常要加载一些网页,有很属性是常用的,也有很多是必须的,做过笔记备用

settings = mIdWebMain.getSettings();
        settings.setUseWideViewPort(true);//将图片调整到适合webView的大小
        settings.setDefaultTextEncodingName("utf-8");//编码格式
        settings.setSupportZoom(false);//是否支持缩放
        settings.setBuiltInZoomControls(false);//是否显示缩放工具
        settings.setLoadsImagesAutomatically(true);//是否支持自动加载图片
        settings.setAllowFileAccess(true);//设置可以访问文件
        settings.setJavaScriptEnabled(true);//支持JS
        settings.setDomStorageEnabled(true);//DOM的连接支持
        settings.setAppCacheEnabled(true);//是否使用缓存api集
        //        settings.setCacheMode(WebSettings.LOAD_NO_CACHE);//不使用缓存
        settings.setCacheMode(WebSettings.LOAD_DEFAULT);//根据cache-control决定是否从网络上取数据
        settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);// 重新布局
        //解决5.0以上ssl不兼容的问题
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }

常见的在自己的webView的操作

//打开网页时不调用系统浏览器, 而是在本WebView中显示
        mWebView.setWebViewClient(new webOnclick());

 /**
     * webView内事件的处理
     */
    private class webOnclick extends WebViewClient {
        /**
         * ssl验证
         *
         * @param view
         * @param handler
         * @param error
         */
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            handler.proceed();//接受ssl验证
        }

        /**
         * 这个事件就是开始载入页面调用的
         */
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        /**
         * 在点击请求的是链接是才会调用
         * 打开网页时不调用系统浏览器, 而是在本WebView中显示
         */
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            WebView.HitTestResult hit = view.getHitTestResult();
            // ------  对相关的scheme处理 -------
            if (!url.startsWith("http:") && !url.startsWith("https:")) {//对不是网页开头的当成scheme
                    try {
                        mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));//启动app操作
                    } catch (Exception e) {
                        Log.i(TAG, "未安装:" + url);
                        return false;
                    }
                    return true;
            }

            int hitType = hit.getType();

            if (hitType == WebView.HitTestResult.SRC_ANCHOR_TYPE) {//点击超链接

                //访问链接
                view.loadUrl(url);
                return true;//返回true浏览器不再执行默认的操作
            } else if (hitType == 0) {//重定向时hitType为0
                return false;//不捕获302重定向
            } else {
                return false;
            }
        }


        /**
         * 在页面加载结束时调用
         */
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
        }
    }

再退出activity的时候可以清理一些数据

@Override
    protected void onDestroy() {
        mWebView.onPause();
        mWebView.destroy();
        super.onDestroy();
    }


猜你喜欢

转载自blog.csdn.net/yinbaoshiguang/article/details/79473753