Ссылка на полный путь для файлов на Android с Cordova - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть внешнее веб-приложение, использующее PhoneGap и Cordova.На iOS у меня нет проблем со ссылками на локальные файлы, такие как файлы изображений в пакете.Я включаю Cordova cordova-plugin-file и на внешнем веб-сервере я ссылаюсь на локальные файлы изображений с путем cdvfile: // localhost / bundle / www / img / , напримерСинтаксис img ниже:

<img src="cdvfile://localhost/bundle/www/img/news.jpg">

Но я не могу заставить его работать на Android .Я пробовал следующие методы и другие похожие пути, но безуспешно.

<img src="file://localhost/assets/www/img/news.jpg">
<img src="cdvfile://localhost/assets/www/img/news.jpg">
<img src="file:///localhost/assets/www/img/news.jpg">
<img src="file:///android_assets/www/img/news.jpg">

Ключевые элементы в моем файле config.xml включают:

<plugin name="cordova-plugin-whitelist" source="npm"/>
<plugin name="cordova-plugin-file" source="npm"/>
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />

В файле index.html -Моя политика безопасности контента:

<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file:; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval'">

Относительные ссылки на пути к файлам на html-страницах в локальной системе работают нормально, но когда я перехожу на внешний веб-сайт и в приложение WebView, я не могу ссылаться на абсолютный localhostпуть правильно для Android.Я могу сделать это на iOS, но не могу понять это для Android.

Есть предложения о том, как получить доступ к локальным файлам в пакете приложения на Android по абсолютному пути?

1 Ответ

0 голосов
/ 11 декабря 2018

Попробуйте использовать относительные пути в следующем формате:

<img src="assets/www/img/news.jpg">

У меня была похожая проблема с локалью json, и она была решена следующим образом.

Поместите ресурсы еще раз с этим форматом вкаталог www и попробуйте выполнить еще одну чистую сборку Android.(Удаление каталога android , добавление платформы Android Cordova и повторная сборка)

...