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);
    }
相關文章
相關標籤/搜索