0

でアプリのストレージにファイルをダウンロードしました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コードそのものですか?

4

1 に答える 1

1

htmlコーディングエラーであることが判明しました。HTML をダウンロードしようとしている場合、上記の方法は問題なく機能します。

于 2013-05-15T23:21:37.073 に答える