4

HTML でアセットをロードするには、URL を使用していますfile:///android_asset/my_image.png。たとえば、WebView.loadData()メソッドを使用して HTML をローカルにロードしているときに機能します。

ただし、リモート Web サイトからローカル アセットを読み込むことができません。たとえば、WebView.loadUrl("http://example.com/my_page.html"). ページは表示されますが、画像が読み込まれていません。

この問題を解決するにはどうすればよいですか?

アップデート:

tarkeshwar は、セキュリティ上の理由からそれは不可能であると述べました。ブラウザで Web ページを開くと、ユーザーは Web ページが何にアクセスしているかを制御できないことを理解しています。また、ユーザーの機密データを読み取る可能性がある場合に、ローカル ファイル システムにアクセスする方法も少し異なります。ここでは、アプリケーション アセットにアクセスしたいだけです。

回避策は、ページをダウンロードしてWebViewusingloadData()メソッドにロードすることです。WebViewただし、ローカル アセットへのアクセスを許可するためのセキュリティ スイッチがある場合があります。

UPDATE2: Android 2.3 以降をサポートする必要があります。

4

2 に答える 2

1

外部ページからローカル リソースにリンクすることはできません。それはセキュリティ上の理由によるものです。

同様の質問については、Pekka の回答を参照してください: Web ページでローカル画像を表示するには?

于 2011-06-02T14:57:00.430 に答える
1

WebViewClient を拡張し、shouldInterceptRequest をオーバーライドしてファイルをローカルにロードします。URL はすべてリモートに表示されますが、必要なものを選択して読み込むことができます。

http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldInterceptRequest(android.webkit.WebView , java.lang.String)

ここでも回答: webview shouldinterceptrequest の例

于 2013-07-25T01:15:24.693 に答える