What does file:///android_asset/www/index.html mean?

后端 未结 6 813
情书的邮戳
情书的邮戳 2020-12-05 00:35

I want to know what does file:/// mean while loading a html file from the assets folder in android

Is it an absolute path name which points to the root

相关标签:
6条回答
  • 2020-12-05 01:14

    it's file:///android_asset/... not file:///android_assets/... notice the plural of assets is wrong even if your file name is assets

    0 讨论(0)
  • 2020-12-05 01:16

    The URI "file:///android_asset/" points to YourProject/app/src/main/assets/.

    Note: android_asset/ uses the singular (asset) and src/main/assets uses the plural (assets).

    Suppose you have a file YourProject/app/src/main/assets/web_thing.html that you would like to display in a WebView. You can refer to it like this:

    WebView webViewer = (WebView) findViewById(R.id.webViewer);
    webView.loadUrl("file:///android_asset/web_thing.html");
    

    The snippet above could be located in your Activity class, possibly in the onCreate method.

    Here is a guide to the overall directory structure of an android project, that helped me figure out this answer.

    0 讨论(0)
  • 2020-12-05 01:16

    It took me more than 4 hours to fix this problem. I followed the guide from http://docs.phonegap.com/en/2.1.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android

    I'm using Android Studio (Eclipse with ADT could not work properly because of the build problem).

    Solution that worked for me:

    1. I put the /assets/www/index.html under app/src/main/assets directory. (take care AndroidStudio has different perspectives like Project or Android)

    2. use super.loadUrl("file:///android_asset/www/index.html"); instead of super.loadUrl("file:///android_assets/www/index.html"); (no s)

    0 讨论(0)
  • 2020-12-05 01:26

    file:/// is a URI (Uniform Resource Identifier) that simply distinguishes from the standard URI that we all know of too well - http://.

    It does imply an absolute path name pointing to the root directory in any environment, but in the context of Android, it's a convention to tell the Android run-time to say "Here, the directory www has a file called index.html located in the assets folder in the root of the project".

    That is how assets are loaded at runtime, for example, a WebView widget would know exactly where to load the embedded resource file by specifying the file:/// URI.

    Consider the code example:

    WebView webViewer = (WebView) findViewById(R.id.webViewer);
    webView.loadUrl("file:///android_asset/www/index.html");
    

    A very easy mistake to make here is this, some would infer it to as file:///android_assets, notice the plural of assets in the URI and wonder why the embedded resource is not working!

    0 讨论(0)
  • 2020-12-05 01:35

    If someone uses AndroidStudio make sure that the assets folder is placed in

    1. app/src/main/assets

      directory.

    0 讨论(0)
  • 2020-12-05 01:38

    It is actually called file:///android_asset/index.html

    file:///android_assets/index.html will give you a build error.

    0 讨论(0)
提交回复
热议问题