Плагин 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)

но похоже что это вообще не работает

  1. переменная cordova.file отсутствует
  2. Я пытался отладить (с помощью отладчика 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
  1. Нет, нету cordova.file. Это специфичный для платформы объект, содержащий пути к определенным местам. В браузере вы можете просто использовать корневой каталог.

  2. Сначала вы должны запросить квоту для браузера. Ниже приведен пример прямо из моего приложения.

Пример:

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.

Другие вопросы по тегам