リモート HTML ページの JavaScript と画像をアセット フォルダー (または任意のローカル リソース) から読み込むにはどうすればよいですか?
ベストアンサー1
回答:
1. HTML を文字列に読み込む必要があります。
private String readHtml(String remoteUrl) {
String out = "";
BufferedReader in = null;
try {
URL url = new URL(remoteUrl);
in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
out += str;
}
} catch (MalformedURLException e) {
} catch (IOException e) {
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return out;
}
2. ベース URL を使用して WebView を読み込みます。
String html = readHtml("http://mydomain.com/my.html");
mWebView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", "");
この特定のケースでは、ページで使用するすべての .js ファイルをプロジェクトの「assets」フォルダーの下のどこかに配置する必要があります。例:
/MyProject/assets/jquery.min.js
3. リモート HTML ページで、アプリケーション内にある .js ファイルと .css ファイルを次のようにロードする必要があります。
<script src="file:///android_asset/jquery.min.js" type="text/javascript"></script>
同じことが画像などの他のすべてのローカルリソースにも当てはまります。それらのパスは次のように始まる必要があります。
file:///android_asset/
WebView は、まず文字列として提供された生の HTML を読み込み、次に .js、.css などのローカル リソースを選択して、リモート コンテンツを読み込みます。