package com.pandaq.pandaeye.utils.x5webview;
import com.pandaq.pandaeye.modules.news.newsdetail.NewsContent;
import java.util.List;
/**
* Created by PandaQ on 2016/9/13.
* email : 767807368@qq.com
* webView加载html的帮助类
*/
public class WebUtils {
private WebUtils() {
}
public static final String BASE_URL = "file:///android_asset/";
public static final String MIME_TYPE = "text/html";
public static final String ENCODING = "utf-8";
public static final String FAIL_URL = "http://daily.zhihu.com/";
private static final String CSS_LINK_PATTERN = " <link href=\"%s\" type=\"text/css\" rel=\"stylesheet\" />";
private static final String NIGHT_DIV_TAG_START = "<div class=\"night\">";
private static final String NIGHT_DIV_TAG_END = "</div>";
private static final String DIV_IMAGE_PLACE_HOLDER = "class=\"img-place-holder\"";
private static final String DIV_IMAGE_PLACE_HOLDER_IGNORED = "class=\"img-place-holder-ignored\"";
public static String buildHtmlWithCss(String html, String[] cssUrls, boolean isNightMode) {
StringBuilder result = new StringBuilder();
for (String cssUrl : cssUrls) {
result.append(String.format(CSS_LINK_PATTERN, cssUrl));
}
if (isNightMode) {
result.append(NIGHT_DIV_TAG_START);
}
result.append(html.replace(DIV_IMAGE_PLACE_HOLDER, DIV_IMAGE_PLACE_HOLDER_IGNORED));
if (isNightMode) {
result.append(NIGHT_DIV_TAG_END);
}
return result.toString();
}
public static String buildHtmlForIt(String content, boolean isNightMode) {
StringBuilder modifiedHtml = new StringBuilder();
modifiedHtml.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<!DOCTYPE html PUBLIC \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\" \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\">"
+ "<html xmlns=\"http://www.w3.org/1999/xhtml\">" + "<head>" + "<meta http-equiv=\"Content-Type\" content=\"application/xhtml+xml; charset=utf-8\"/>"
+ "<meta http-equiv=\"Cache-control\" content=\"public\" />" + "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,user-scalable=no,minimum-scale=1.0,maximum-scale=1.0\" />"
+ "<link rel=\"stylesheet\" href=\"file:///android_asset/news.css\" type=\"text/css\">"
+ "<script type = \"text/javascript\" src=\"file:///android_asset/info.js\"></script>");
modifiedHtml.append("<body ");
if (isNightMode) {
modifiedHtml.append("class=\'night\'");
}
modifiedHtml.append(">");
modifiedHtml.append(content);
modifiedHtml.append("</body></html>");
return modifiedHtml.toString();
}
public static String newsInsertPic(NewsContent newsContent) {
String result = newsContent.getBody().replaceAll(" ", "");
List<NewsContent.ImgBean> imgBeen = newsContent.getImg();
for (int i = 0; i < imgBeen.size(); i++) {
if (i != 0) {
String ref = imgBeen.get(i).getRef();
String url = imgBeen.get(i).getSrc();
result = result.replaceAll(ref, getImageBody(url));
}
}
return result;
}
private static String getImageBody(String url) {
return "<img src = " +
url +
" width = 100%" +
// sizes[0] +
" height = 100%" +
// sizes[1]
"onclick = \"alert(2333)\"" +
"/>" + "\n";
}
}