1

Google Chrome ブラウザーでローカル HTML ファイルを解析する必要があります。これを行う方法は、HTMLファイルをSDカードにコピーしてロードすることです。私がやりたいことは、MyProject/assets フォルダーから Chrome ブラウザーで HTML ファイルを開くことです。

現在、URLを介してhtmlをロードしています。HTML をローカルで読み込むと、ページの読み込みが速くなります。これが私が今していることです。


    Intent i = new Intent("android.intent.action.MAIN");
    i.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.android.chrome.Main"));
    i.addCategory("android.intent.category.LAUNCHER");
    i.setData(Uri.parse("http://www.example.com"));
    startActivity(i);

私がやりたいことは、このようなものです


    Intent i = new Intent("android.intent.action.MAIN");
    i.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.android.chrome.Main"));
    i.addCategory("android.intent.category.LAUNCHER");
    i.setData(Uri.parse("MyProject/assets/htmlfile.html"));
    startActivity(i);

4

1 に答える 1

1

まず、setComponent()電話を切ってください。ユーザーに敬意を持って接し、好きなブラウザーを使用できるようにします。さらに、Chrome は Android デバイスのごく一部にしか搭載されていないため、ほとんどのデバイスでアプリがクラッシュします。

addCategory()次に、呼び出しを取り除き、Intentアクションをに置き換えますIntent.ACTION_VIEW

現在のアプローチは正しくなく、信頼できないため、Web コンテンツをどこから取得しているかに関係なく、これらすべてを実行する必要があります。

アセットに関しては、他のアプリは を介し​​てアセットを直接読み取ることができませんUri。アセットを提供する を作成できますが、Chrome はこのスキームContentProviderをサポートしていません。content:// Uri実際、Chrome は任意の URL をロードするための値のみをサポートしhttp://ています。https:// Uriサポートしているようには見えませんfile://

アセットを表示する場合は、WebViewウィジェットに表示します。そこで、file:///android_asset/URL を使用して、独自のアプリのアセットの 1 つを参照できます。

于 2013-08-25T16:22:18.543 に答える