Cordova: ссылки на файлы javascript, расположенные на локальном ресурсе Не допускаются
Статус:
У меня есть несколько файлов сценариев Java, которые я загружаю со своего сервера и сохраняю в хранилище устройства, и хочу связать их с моим index.html
именно так:
<script
type="text/javascript"
src="file:///data/data/<app_id>/files/path/to/my-script.js/">
</script>
и то же самое для CSS
,
Это ошибка:
Not allowed to load local resource:
file:///data/data/<app_id>/files/path/to/style.css
ПРИМЕЧАНИЕ: это было разрешено в предыдущих версиях Cordova, но так как я обновил Cordova 5, я вынужден установить белый список плагинов, и затем появилась ошибка разрешения.
2 ответа
Я решил эту проблему, создав крошечный веб-сервер в Cordova с помощью этого плагина CorHttpd Cordova Plugin
затем просто обратитесь к таблице стилей следующим образом:
<link src="http://localhost:8080/css/file.css">
и вы можете обратиться к файлу JS следующим образом:
<script src="http://localhost:8080/js/script.js" ><script>
Я полагаю, вы пытаетесь добиться этого на Android. Если это правильно, я полагаю, вы можете использовать следующее для разрешения любого файла во внешней файловой системе:
window.resolveLocalFileSystemURL(path, cbSuccess, cbFail);
path - {string} a cordova path with scheme:
'cdvfile://localhost/<file-system-name>/<path-to-file>'
Examples: 'cdvfile://localhost/sdcard/path/to/global/file'
'cdvfile://localhost/cache/onlyVisibleToTheApp.txt'
cbSuccess - {function} a callback method that receives a DirectoryEntry object.
cbFail - {Function} a callback method that receives a FileError object.
Это, однако, требует некоторой настройки.
config.xml
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="AndroidExtraFilesystems" value="sdcard,cache" />
AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Использовал следующий вопрос, например.