1

Android アプリで WebView を使用して、Web アプリをロードしています。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    _web_view = (WebView) findViewById(R.id.web);
    _web_view.loadUrl(R.strings.url);
}

ここまでは順調ですね。

私がやりたいことは、WebView が要求したときに、利用可能なアセットをローカルの Android ファイルシステムからロードすることを選択的に選択することです。アイデアは、静的な画像アセットを Android にパッケージ化し、ウェブ サーバーからリクエストするのではなく、ファイル システムから提供することで、読み込み時間と帯域幅を大幅に節約することです。

WebViewClient クラスに onLoadResource メソッドがあることがわかります。これは私が望むものに非常に近いですが、アプリに「いいえ、そのURLからダウンロードしないで、代わりにこのURLを使用してください」と伝える方法が必要です(そしてローカルファイルシステムを指します)。

これまでに考えられる最善の方法は、単純に Android ファイルシステムを指す .html ファイルの別のコピーを用意することですが、クライアント側で HTML の 2 つのコピーを維持するよりも、クライアント側でアセットを選択的に置き換えることをお勧めします。サーバ...

ありがとう!

4

1 に答える 1

1

shouldInterceptRequest代わりにオーバーライドを見てください。それはあなたが望むもののようです。欠点は、API 11+ が必要なことです。

于 2012-08-31T00:38:41.680 に答える