我想在webview中加载html字符串,即不是从URL或sdcard中的某个html文件加载。现在,html字符串有文本区域。用户可以编辑它。现在我想将更改保存为内部存储器中的html文件。我该怎么做。我检查了其他SO问题,都使用相同的方法,即使用URL或使用一些JavaScript方法,这在我的情况下不起作用。我试过how to get html content from a webview?但它没有帮助我。我认为这实际上打开弹出窗口显示代码,甚至不允许用户编辑哪些不是我的情况。从Webview获取html字符串并将其存储为html文件
代码(这里的文本区域被TinyMCE的编辑器提供):
try {
InputStream input = getApplicationContext().getAssets().open("sample.html");
//Reader is = new BufferedReader(new InputStreamReader(input, "windows-1252"));
StringBuilder contentBuilder = new StringBuilder();
try {
BufferedReader in = new BufferedReader(new InputStreamReader(input, "windows-1252"));
String str;
while ((str = in.readLine()) != null) {
contentBuilder.append(str);
}
in.close();
} catch (IOException e) {
}
content = contentBuilder.toString();
content=content.replace("This is some content that will be editable with TinyMCE.", html);
view.getSettings().setJavaScriptEnabled(true);
view.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
view.getSettings().setPluginState(WebSettings.PluginState.ON);
view.addJavascriptInterface(new WebAppInterface(this), "Android");
view.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");
view.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.HtmlViewer.showHTML" +
"(''+document.getElementsByTagName('html')[0].innerHTML+'');");
}
});
view.loadDataWithBaseURL("file:///android_asset/", content, "text/html",
"UTF-8", null);
+0
向我们展示您的代码,请 –
+4
http://stackoverflow.com/questions/8200945/how-to-get-html-content-from-a- webview?answertab = votes#tab-top –
+0
@robjez添加了代码。 –