2

インテントにロードしようとしている静的なローカル ファイルで作成された Web サイトがあります。JavaScript を使用しているため、Web ビューの代わりにインテントを使用する必要があるという印象を受けました。

ファイルは「assets/site_files/index.html」にあります。これは私が使用しようとしているコードです:

Uri path = Uri.parse("file:///android_asset/site_files/index.html");
Intent intent = new Intent(Intent.ACTION_VIEW, path);
startActivity(intent);

インテントの開始中にアプリがクラッシュし、これがコンソールの最後のエントリになります。

ActivityManager: Starting: Intent

ローカル バージョンをロードしようとする代わりに、Web サーバーにサイトをロードすると、アプリは正常に動作します。以下は完全に機能します。

Uri path = Uri.parse("http://www.domain.com/test_app_static/index.html");
Intent intent = new Intent(Intent.ACTION_VIEW, path);
startActivity(intent);

ただし、ユーザーがインターネットに接続せずに実行できるように、ローカルで実行する必要があります。私は周りを見回していくつかの異なる解決策を試しましたが、ローカルのhtmlファイルをインテントにロードするという特定の状況では、どれもうまくいきませんでした。助けてください!

4

2 に答える 2

1

正しい URL はfile:///android_asset/site_files/index.html. アプリがクラッシュする理由は、アプリからassetしかファイルにアクセスできないためです。したがって、そのデータを で表示する必要がありますWebView

于 2012-11-02T07:27:56.967 に答える
1

index.html ページをアプリの data( data/data/<your.package>) フォルダーにコピーします。api Activity.getDir()を使用して場所を取得し、引数としてMODE_WORLD_READABLEを渡して、他のアプリケーションがアプリ データ フォルダーからファイルを読み取ることができるようにします。これで、このパスを の一部として渡すことができますintent。他のアプリケーションはassetsフォルダーにアクセスできないことに注意してください。

于 2012-11-02T07:39:52.270 に答える