5

WP8 platformuyla Cordova dosya eklentisinin nasıl kullanılacağı konusunda ciddi bir belge eksikliği var.WP8/Cordova dosya sistemi - doğru kodu bilen var mı?

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'); 
} 
:

Ben tüm aşağıdaki kodu kullanabilirsiniz benim webcoder oluşturulan dosyaları, dizin içeriğini görüntüleyebilir, indirebilir kaydetmek ve açmak için dosya eklentisi kullanarak, Android fireOS ve iOS'ta bir uygulama var daha sonra this Github de kod çalıştı

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

hala başarısız oldu:

}

WP8 gotFS fonksiyonu aşağıdaki hata atar herhangi bir dizin oluşturmak veya okumak, ancak IsolatedStorageException istisnasını atma.

Google'a defalarca sordum, ancak tutarlı bir yanıt veremiyor.

Herkes WP8 ile dosya eklentisini nasıl kullanır?

+0

+ 1 oyla "Ciddi dokümantasyon eksikliği var" seçeneğim var :) Sadece bir tahminde bulunun, ancak dosya sisteminize erişmek için uygulama izinlerinizi verdiğinizden emin misiniz? – CodingWithSpike

+0

Sorunuz tam olarak noktayı gösteriyor! Bunu nerede/nasıl kontrol edebilirim? – DaveSav

+0

Bunu denedim ama 'fileSystem.root.value' undefined' değil. Bu sadece cihazda çalışır ve emülatörde değil mi? – Sumit

cevap

2
Yukarıdaki benim yorum İlgili

ancak kod koymak için bir yer istedi ...

Ben yalnızca iOS ve Android, bir WP8 kendim app yapmadıysanız, ama belki uygulaması doğru izinleri yok ?

Bu

sizin Properties/WPAppManifest.xml dosyada gidip gibi görünecektir:

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

Ve mevcut kabiliyet kimlikleri listesi listed here on MSDN olduğunu. Dosya depolama ile ilgili gördüğüm tek kişi ID_CAP_REMOVABLE_STORAGE olsa da sorun bu değil ... Yukarıdaki bağlantı yararlı olsa da düşündüm.

+0

Tam olarak cevap budur. WPAppManifest.xml dosyasına ID_CAP_REMOVABLE_STORAGE eklenmesi ikinci kod örneğimin çalışmasına izin verdi. Apache Cordova'ya not; WP8 dosya sistemini etkinleştirirken, ayrıca bildirimi güncelleyin. Bunu çözmek için, @CodingWithSpike teşekkürler. – DaveSav

+0

23 saat sonra ve ne yazık ki bu tam olarak cevap görünmüyor :(. Window.requestFileSystem async isteği WP8'de çok yavaş görünüyor ve undefined dönecektir. Bu isteği bir uygulama yükleme etkinliğine taşıdım (vaatler daha iyi olurdu. Yine de WP8 diğer tüm Cordova platform dosya sistemi eklentilerine uymayı reddediyor – DaveSav

+0

ID_CAP_REMOVABLE_STORAGE eklendiğinde benim için çalıştım, dosya api işe yaramadı. – Gillardo

İlgili konular