Android WebView的使用

WebView webView = (WebView) findViewById(R.id.webwiew_info);
Pattern p = Pattern.compile("<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>");
Matcher m = p.matcher(data);

while(m.find()){
String img = "<img width='100%' src='"+m.group(1)+"' />";
            data = data.replaceAll(m.group(), img);
            Log.w("img = ",m.group() + "-------------↓↓↓↓↓↓");
        }


private void initWebView(String data) {
        mHandler = new Handler();
        webViewSetting();

        webView.loadDataWithBaseURL("", data, "text/html", "UTF-8", "");
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // 返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
                view.loadUrl(url);
                return true;
            }
        });
    }

    private void webViewSetting() {
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        //自适应屏幕
        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
        webSettings.setUseWideViewPort(true);// 设置此属性,可任意比例缩放
        webSettings.setSupportZoom(true);// 支持缩放
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setBuiltInZoomControls(true);
        webSettings.setDefaultFontSize(18);

//        DocumentsContract.Document doc_Dis = Jsoup.parse(htmlContent);
//        Elements ele_Img = doc_Dis.getElementsByTag("img");
//        if (ele_Img.size() != 0){
//            for (Element e_Img : ele_Img) {
//                e_Img.attr("style", "width:100%");
//            }
//        }
//        String newHtmlContent=doc_Dis.toString();
//        webView.loadDataWithBaseURL("", newHtmlContent, "text/html", "UTF-8", "");
    }

    // 改写物理按键——返回的逻辑
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (webView.canGoBack()) {
                webView.goBack();// 返回上一页面
                Log.e("onKeyDown", "onKeyDown111111");
                return true;
            } else {
                Log.e("onKeyDown", "onKeyDown000000");
                // System.exit(0);// 退出程序
                GraphicInfoActivity.this.finish();
                GraphicInfoActivity.this.onDestroy();
            }
        }
        return super.onKeyDown(keyCode, event);
    }
相关文章
相关标签/搜索