两种方式:
方式一:
- String htmlContent = StringEscapeUtils.unescapeJava(data);
- // String m = "src=";
- // htmlContent = htmlContent.replaceAll(m, "src=\"" + Constants.IMAGE_URL);
- Document doc = Jsoup.parse(htmlContent);
- Elements elem_img = doc.getElementsByTag("img");
- // 图片自适应屏幕
- if (elem_img.size() != 0) {
- for (Element el_img : elem_img) {
- el_img.attr("style", "width:100%");
- }
- }
- htmlContent = doc.toString();
- webview.loadData(htmlContent, "text/html; charset=UTF-8", null);
- webview.getSettings().setDefaultTextEncodingName("UTF-8");// 设置默认为utf-8
- String html = response.getContent();
- if (html.contains("src=\"/public")){
- html = html.replace("src=\"/public", "src="+"\""+Config.WEB_HOST+"\""+"+\"/public");
- }
- showWebView(html);
- private void showWebView(String html)
- {
- // 设置WevView要显示的网页
- webviewArticleContent.getSettings().setJavaScriptEnabled(true);//设置支持Javascript
- webviewArticleContent.getSettings().setBlockNetworkImage(false);
- webviewArticleContent.requestFocus();//触摸焦点起作用.如果不设置,则在点击网页文本输入框时,不能弹出软键盘及不响应其他的一些事件。
- webviewArticleContent.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
- if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
- webviewArticleContent.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
- }
- // luntanListview.getSettings().setBuiltInZoomControls(true); //页面添加缩放按钮
- // luntanListview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); //取消滚动条
- // 点击链接由自己处理,而不是新开Android的系统browser响应该链接。
- webviewArticleContent.setWebViewClient(new WebViewClient(){
- @Override
- public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
- //注意:super句话一定要删除,或者注释掉,否则又走handler.cancel()默认的不支持https的了。
- //super.onReceivedSslError(view, handler, error);
- //handler.cancel(); // Android默认的处理方式
- //handler.handleMessage(Message msg); // 进行其他处理
- handler.proceed(); // 接受所有网站的证书
- }
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- view.loadUrl(url);
- return true;
- }
- });
- String CSS_STYPE = "<head><style>img{max-width:100% !important;} table{max-width:100% !important;}</style></head>";
- webviewArticleContent.loadDataWithBaseURL(null, CSS_STYPE + html, "text/html", "utf-8", null);
- // luntanListview.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- // @Override
- // public void onFocusChange(View v, boolean hasFocus) {
- // if (hasFocus) {
- // try {
- // // 禁止网页上的缩放
- // Field defaultScale = WebView.class
- // .getDeclaredField("mDefaultScale");
- // defaultScale.setAccessible(true);
- // defaultScale.setFloat(luntanListview, 1.0f);
- // } catch (SecurityException e) {
- // e.printStackTrace();
- // } catch (IllegalArgumentException e) {
- // e.printStackTrace();
- // } catch (IllegalAccessException e) {
- // e.printStackTrace();
- // } catch (NoSuchFieldException e) {
- // e.printStackTrace();
- // }
- // }
- // }
- // });
- }