我有文件下载到我的应用程序的存储在file:///data/data/<myapp>/files/folder/
。下载到文件夹中的文件包括一个HTML,css,js和图像文件。当使用的WebView使用loadURL,下面的代码工作完美的我:Android Webview loadUrl工作但不loadDataWithBaseURL
webview.loadUrl("file:///data/data/<myapp>/files/folder/filename.html");
但现在我需要下载HTML文件,因为我需要在存放前,给它加密。问题不在于加密信息(目前)。我所要做的就是将HTML内容下载到字符串中,然后使用webview的loadDataWithBaseURL加载webview。当试图做到这一点时,我从Web控制台收到“Uncaught SyntaxError”和“Uncaught ReferenceError”。我不确定这些错误是从哪里来的。
我用下面的代码的HTML下载到一个字符串:
URL url = new URL("myserver/filename.html");
InputStream input = null;
input = url.openConnection().getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(input));
StringBuilder sb = new StringBuilder();
String line;
while((line = br.readLine()) != null){
sb.append(line)
}
String myHTML = sb.toString();
现在,当我去loadDataWithBaseURL加载网页视图:
String baseURL = "file:///data/data/<myapp>/files/folder/";
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setPluginsEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL);
webview.loadDataWithBaseURL(baseURL, myHTML, "text/html", "utf-8", null);
但是,当我执行该代码,我得到"Uncaught SyntaxError"
和"Uncaught ReferenceError"
。现在我感到困惑,因为如果loadUrl工作得很好,为什么我的loadDataWithBaseURL行为不一样?是否因为我没有正确地将HTML转换为字符串?或者它是HTML代码本身?