Файловая система WP8 / Cordova-кто-нибудь знает правильный код?


Существует серьезная нехватка документации о том, как использовать плагин Cordova file с платформой WP8.

У меня есть приложение на Android, fireOS и iOS, все они используют файловый плагин для просмотра содержимого каталога, загрузки, сохранения и открытия сгенерированных файлов из моего веб-сервиса, которые все используют следующий код:

function listDir() {
//console.log('listDir');
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);

function gotFS(fileSystem) {
    //console.log('gotFS. filesystem.root = ' + fileSystem.root.value);
    fileSystem.root.getDirectory("MyFolder", { create: true, exclusive: false }, gotDir);

}

function gotDir(dirEntry) {
    //console.log('gotDir');
    // Get a directory reader
    var directoryReader = dirEntry.createReader();

    // Get a list of all the entries in the directory
    directoryReader.readEntries(success, fail);

}

function success(entries) {
    var i = 0, sb = '';
    sb += '<ul data-role="listview" data-inset="true" id="pdfFiles">';
    if (entries.length > 0) {
        for (i = 0; i < entries.length; i++) {
            sb += '<li><a href="#" data-src="' + entries[i].toURL() + '"><img src="images/icons/icon_pdf.png" class="ui-li-icon" width="16px" height="16px" alt="PDF Icon" />';
            sb += entries[i].name;
            //sb += '<br />';
            //sb += entries[i].fullPath;
            sb += '</a></li>';
        }
    } else {
        sb += '<li><p>You do not have any saved reports</p></li>';
    }

    sb += '</ul>';
    $('#pdfReports-entries').html(sb);
    $('ul#pdfFiles').listview().listview('refresh');

    //open the pdf file using the fileOpener plugin
    $('ul#pdfFiles li a').on('click', function () {

        $this = $(this);
        window.plugins.fileOpener.open($this.attr('data-src'));
    });
}

function fail(error) {
    logError("Failed to list directory contents: " + error.code);
    sb += '<ul data-role="listview" data-inset="true" id="pdfFiles">';
    sb += '<li><p>You do not have any saved reports</p></li>';

    sb += '</ul>';
    $('#pdfReports-entries').html(sb);
    $('ul#pdfFiles').listview().listview('refresh');
}

}

WP8 выдает следующую ошибку в функции gotFS:

A first chance exception of type 'System.IO.IsolatedStorage.IsolatedStorageException' occurred in mscorlib.ni.dll

Затем я попробовал код на этом Github , который все еще не смог создать или читал любые каталоги,но не создавал исключение IsolatedStorageException.

Я много раз спрашивал Google, но он не может дать вразумительного ответа.

Знает ли кто-нибудь , Как использовать файловый плагин с WP8?

1 5

1 ответ:

Связано с моим комментарием выше, но хотел место, чтобы положить код...

Я сам не делал приложение WP8, только iOS и Android, но, возможно, у приложения нет правильных разрешений?

Они будут помещены в ваш файл Properties/WPAppManifest.xml и выглядеть так:

<Capabilities>
    <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
    <Capability Name="ID_CAP_IDENTITY_DEVICE" />
    <Capability Name="ID_CAP_IDENTITY_USER" />
</Capabilities>

И список доступных идентификаторов возможностей перечислены здесь на MSDN. Хотя единственное, что я вижу, связанное с хранением файлов, - это ID_CAP_REMOVABLE_STORAGE, так что, возможно, это не проблема... Однако я решил, что ссылка выше может быть полезной.