Плагин Cordove File не работает с браузерной платформой
Я пытался работать с
org.apache.cordova.file 1.3.2 "File"
org.apache.cordova.file-transfer 0.4.8 "File Transfer"
на платформе браузера (я использую Chrome под Fedora с параметрами --allow-file-access-from-files --allow-file-access)
но похоже что это вообще не работает
- переменная cordova.file отсутствует
- Я пытался отладить (с помощью отладчика Chrome) плагин (функция
resolveLocalFileSystemURI
).exec(success, fail, "File", "resolveLocalFileSystemURI", [uri]);
называется ноCommandProxyMap
пусто, так что ничего не случилось
Если у кого-то есть пример, который работает или учебник, чтобы объяснить, как заставить его работать.
2 ответа
Я знаю, что у этой ветки уже немного времени, но я хотел бы обновить ее на тот случай, если кто-нибудь столкнется с ней, как и я...
Хотя я не могу сказать конкретно, когда это было исправлено / добавлено, теперь вы можете использовать cordova.file из своего браузера (лично проверенный в Chrome), если вы используете самые последние плагины для файлов и файловых файлов, а также платформу "браузер".,
Чтобы обойти cordova.file - неопределенная проблема, присутствующая в предыдущих выпусках файла, вот что я лично сделал (я использую Ionic, так что sub 'cordova' по мере необходимости):
> ionic plugin remove org.apache.cordova.file-transfer
> ionic plugin remove org.apache.cordova.file
> ionic platform add browser
> ionic plugin add https://github.com/apache/cordova-plugin-file.git
> ionic plugin add https://github.com/apache/cordova-plugin-file-transfer.git
> ionic run browser
Нет, нету cordova.file. Это специфичный для платформы объект, содержащий пути к определенным местам. В браузере вы можете просто использовать корневой каталог.
Сначала вы должны запросить квоту для браузера. Ниже приведен пример прямо из моего приложения.
Пример:
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
if (isPhoneGapApp)
{
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess.bind(this), this.errorHandler);
}
else
{
navigator.webkitPersistentStorage.requestQuota(1024*1024*1024, function(grantedBytes) {
window.webkitRequestFileSystem(LocalFileSystem.PERSISTENT, grantedBytes, onFileSystemSuccess.bind(this), this.errorHandler);
}, function(e) {
console.log('Error', e);
});
}
Если LocalFileSystem.PERSISTENT не определен, замените его на 1.