file:///
Androidのアセットフォルダからhtmlファイルをロードするときの意味を知りたい
ルートディレクトリを指す絶対パス名ですか?
ちなみにこれはphonegapのチュートリアルで見ました。
file:///
Androidのアセットフォルダからhtmlファイルをロードするときの意味を知りたい
ルートディレクトリを指す絶対パス名ですか?
ちなみにこれはphonegapのチュートリアルで見ました。
file:///
は、私たち全員がよく知っている標準URIと単純に区別するURI(Uniform Resource Identifier)です- http://
。
これは、どの環境でもルートディレクトリを指す絶対パス名を意味しますが、Androidのコンテキストでは、Androidランタイムに「ここでは、ディレクトリには、のフォルダにあるwww
というファイルがあります。プロジェクトのルートindex.html
assets
」。
これは、実行時にアセットがロードされる方法です。たとえば、ウィジェットは、 URIWebView
を指定することにより、埋め込みリソースファイルをロードする場所を正確に認識します。file:///
コード例を考えてみましょう。
WebView webViewer = (WebView) findViewById(R.id.webViewer);
webView.loadUrl("file:///android_asset/www/index.html");
ここで犯す非常に簡単な間違いはこれですfile:///android_assets
。URI内の複数のアセットに気づき、埋め込まれたリソースが機能しないのはなぜだろうと推測する人もいます。
誰かがAndroidStudioを使用している場合は、アセットフォルダーがに配置されていることを確認してください
app / src / main / Assets
ディレクトリ。
URI"file:///android_asset/"
はを指しYourProject/app/src/main/assets/
ます。
注:android_asset/
単数形(アセット)をsrc/main/assets
使用し、複数形(アセット)を使用します。
YourProject/app/src/main/assets/web_thing.html
WebViewに表示したいファイルがあるとします。あなたはそれをこのように参照することができます:
WebView webViewer = (WebView) findViewById(R.id.webViewer);
webView.loadUrl("file:///android_asset/web_thing.html");
上記のスニペットは、Activityクラス、場合によってはonCreate
メソッドに配置できます。
これは、Androidプロジェクトの全体的なディレクトリ構造のガイドであり、この答えを理解するのに役立ちました。
それは実際に呼ばれていますfile:///android_asset/index.html
file:///android_assets/index.html
ビルドエラーが発生します。
この問題を解決するのに4時間以上かかりました。http://docs.phonegap.com/en/2.1.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Androidのガイドに従いました
私はAndroidStudioを使用しています(ビルドの問題のため、ADTを使用したEclipseは正しく機能しませんでした)。
私のために働いた解決策:
/assets/www/index.htmlをapp/src / main/assetsディレクトリに置きます。(AndroidStudioにはProjectやAndroidなどのさまざまな視点があることに注意してください)
super.loadUrl( "file:/// android_asset /www/index.html");を使用します。super.loadUrl( "file:/// android_assets /www/index.html");の代わりに (sなし)
それはfile:/// android_asset / ...ではなくfile:/// android_assets /...ファイル名がアセットであっても複数のアセットが間違っていることに注意してください