でアプリのストレージにファイルをダウンロードしましたfile:///data/data/<myapp>/files/folder/
。フォルダーにダウンロードされるファイルには、HTML、css、js、および画像ファイルが含まれます。webview の loadUrl を使用する場合、次のコードは完全に機能します。
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 を使用して webview をロードすると、次のようになります。
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コードそのものですか?