项目中遇到加载部分网页的需求
在网上搜了下,都说自己需要把片段拼接成完整的网址,就用了下,然后就可以了,把代码贴出来以备下次用
private String getHtmlData(String bodyHTML) {
String head = "<head>" + "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> " + "<style>html{padding:15px;} body{word-wrap:break-word;font-size:13px;padding:0px;margin:0px} p{padding:0px;margin:0px;font-size:13px;color:#222222;line-height:1.3;} img{padding:0px,margin:0px;max-width:100%; width:auto; height:auto;}</style>" + "</head>"; return "<html>" + head + "<body>" + bodyHTML + "</body></html>";
}
把后台给的那个片段放到这个方法里面
wv.loadData(getHtmlData(content), "text/html;charset=utf-8", "utf-8");
这段代码是在解析完成之后调用
然后在initview里面找id
WebSettings settings = wv.getSettings(); settings.setJavaScriptEnabled(true); settings.setDomStorageEnabled(true); settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true); wv.setWebViewClient(new MyWebViewClient(this)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING); } else { settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL); }
最后是重写WebViewClient方法
static class MyWebViewClient extends WebViewClient {
private Activity activity;
public MyWebViewClient(Activity activity) {
this.activity = activity;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
super.onReceivedSslError(view, handler, error);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
}