我正在保存WebView的内容,这样我可以在下次启动应用程序时显示该内容。我跟着this,几乎按照我的意愿工作。
@JavascriptInterface
public void setHtml(String html) {
SharedPreferences settings = getSharedPreferences("preferences", MODE_PRIVATE);
this.html = html;
SharedPreferences.Editor prefEditor = settings.edit();
prefEditor.putString("ActivityHtml", html);
prefEditor.commit();
Log.d("html", html);
setChanged();
notifyObservers(html);
}
然后:
view.loadDataWithBaseURL("", settings.getString("ActivityHtml", ""), "text/html", "UTF-8", "");
然而,当我在Log中看到html时,Javascript和CSS的服务器路径如下:
<link href="/Content/Sass/style_sass.css?version=1.0.1.15" rel="stylesheet">
<img src="../Images/magnify_black.png" />
现在因此,只显示文本内容而不显示图像。像这样:
我如何获取HTML中的图像,CSS和JavaScript?
告诉我已经有了以下内容:
view.getSettings().setLoadsImagesAutomatically(true);
view.getSettings().setJavaScriptEnabled(true);
答案 0 :(得分:0)
我认为您应该从Assets或SDcard加载CSS,就像这样:
WebView wv = new WebView(context);
StringBuilder html = new StringBuilder();
html.append("<html>");
html.append("<head>");
html.append("<link rel=stylesheet href='css/style.css'>");
html.append("</head>");
html.append("<body>");
html.append("<h1>Some Heading</h1>");
html.append("<p>Some HTML content</p>");
html.append("<p><img style='width: 100%;' src='spidermen.jpg' /></p>");
html.append("</body></html>");
wv.loadDataWithBaseURL("file:///android_asset/", html.toString(), "text/html", "UTF-8", "");
并将文件放在正确的位置。
答案 1 :(得分:0)
使用
view.getSettings().setJavaScriptEnabled(true);
view.getSettings().setBuiltInZoomControls(true);
view.getSettings().setDomStorageEnabled(true);
view.requestFocus(View.FOCUS_DOWN);
view.setWebChromeClient(new WebChromeClient());
view.loadDataWithBaseURL("file:///android_asset/",settings.getString("ActivityHtml", ""),"text/html", "utf-8", null);
以及将本地放置在资产文件夹中的CSS部分。