2012-09-26 16 views
5

ile test edebilir miyim PhoneGap (şimdi Apache Cordova, 2.0 sürümü ile) bir uygulama üzerinde çalışıyorum ve dosyayı yazmak için PhoneGap File API'yi kullanıyorum. chrome Başvurumu test etmek https://developer.blackberry.com/html5/download: Buradan Dalgalanma Emulator (0.9.9beta) kullanan http://docs.phonegap.com/en/2.0.0/cordova_file_file.md.html#FilePhoneGap File API'sini Ripple emülatörü

:

kullandığım Dosya API başvurulan olabilir.

Ancak Ripple, PhoneGap File API'sini doğru bir şekilde işleyemiyor. Örneğin

:

Ben PERSİSTAN dizinde bir dosya (kök/foo.json) oluşturmak istiyorum

function onSuccess(fileSystem) { 
    fileSystem.root.getDirectory("dir", {create: true}, function(dirEntry){ 
     dirEntry.getFile("foo.json", {create: true}, function(fileEntry){  
      fileEntry.createWriter(function(writer){ 
       writer.write(JSON.stringify(fooData)); 
      }, onfail); 
     }, onfail); 
    }, onfail); 
} 
function onfail(error) 
{ 
    console.log(error.code); 
} 

// request the persistent file system 
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onfail); 

Bu Doğru dosyayı yarattı iOS simülatörü üzerinde çalışıyor Doğru yerde, ancak kromda çalışan Ripple Emulator'unda, bir onfail geri çağrısı aldım ve hata kodu 10'u aldım (FileError.QUOTA_EXCEEDED_ERR). Is it able to test phonegap application outside emulator?

Ama yine hiçbir cevap:

Ben de burada benzer bir soruyla birini buldum.

Ripple emülatörü şu anda PhoneGap API için düzgün çalışmıyor mu? Yoksa bazı ayarları kaçırdım mı?

+0

Cevabı alabileceğimi düşünüyorum, Ripple şu anda PhoneGap API'sinin bir alt kümesini destekliyor ve bunu tamamlamak için çalışma devam ediyor: (http://rippledocs.tinyhippos.com/index.html#platforms/phoneGap – windam

cevap

3

Sorun bulundu. PERSISTENT dosya sistemi nesnesini kullanmadan önce kota vermem gerekiyor. https://developers.google.com/chrome/whitepapers/storage#persistent

// Request Quota (only for File System API) 

window.webkitStorageInfo.requestQuota(PERSISTENT, 1024*1024, function(grantedBytes) { 
window.webkitRequestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler); 
}, function(e) { 
console.log('Error', e); 
}); 

It Dalga-UI (I lib/dalgalanma/fs.js de kaynak kodunu işaretli) benim için bunu yapmadı görünüyor. Bu yüzden her zaman bir FileError.QUOTA_EXCEEDED_ERR alıyorum.

+0

İlginç Chrome bunu sizin için otomatik olarak yapar mı? Eğer öyleyse, Ripple'ın içinde çalıştığı tarayıcıdan bir davranış devralmayacağını merak ediyorum. –