Я хочу знать, что означает file:///
при загрузке html файла из папки ресурсов в android
Это абсолютное имя пути, указывающее на корневой каталог?
Я видел это в учебнике для телефонного разговора между прочим.
Я хочу знать, что означает file:///
при загрузке html файла из папки ресурсов в android
Это абсолютное имя пути, указывающее на корневой каталог?
Я видел это в учебнике для телефонного разговора между прочим.
file:///
- это URI (Uniform Resource Identifier), который просто отличает от стандартного URI, который все мы знаем слишком хорошо - http://
.
Это подразумевает абсолютное имя пути, указывающее на корневой каталог в любой среде, но в контексте Android это соглашение, чтобы сказать, что время выполнения Android: "Здесь в каталоге www
есть файл, называемый index.html
, расположенный в папке assets
в root проекта.
Так как активы загружаются во время выполнения, например, виджет WebView
точно знает, где загрузить загруженный файл ресурсов, указав URI file:///
.
Рассмотрим пример кода:
WebView webViewer = (WebView) findViewById(R.id.webViewer);
webView.loadUrl("file:///android_asset/www/index.html");
Очень легко сделать это, некоторые из них заключили бы как file:///android_assets
, заметили бы множественное количество активов в URI и задались вопросом, почему встроенный ресурс не работает!
Если кто-то использует AndroidStudio, убедитесь, что папка с ресурсами помещена в
приложение/SRC/основные/активы
Каталог.
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
.
Вот руководство к общей структуре каталогов проекта андроида, что помогло мне разобраться в этом ответе.
На самом деле это называется file:///android_asset/index.html
file:///android_assets/index.html
даст вам ошибку сборки.
Попробуйте изменить заголовок вопроса на
что делает файл:///android_asset/index.html означает
.
Мне понадобилось больше 4 часов, чтобы решить эту проблему. Я последовал за проводником из http://docs.phonegap.com/en/2.1.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android
Я использую Android Studio (Eclipse с ADT не может работать должным образом из-за проблемы с сборкой).
Решение, которое сработало для меня:
Я помещаю /assets/www/index.html в каталог app/src/main/assets. (учтите, что AndroidStudio имеет разные перспективы, такие как Project или Android).
используйте super.loadUrl( "файл:/// android_asset/www/index.html" ); вместо super.loadUrl( "file:/// android_assets/www/index.html" ); (не s)
it file:/// android_asset/... not file:/// android_assets/... заметить, что множественное число активов неверно, даже если ваш файл имя - это активы