2012-09-26 8 views
5

Pracuję nad aplikacją z PhoneGap (teraz Apache Cordova, z wersją 2.0) i korzystam z interfejsu API pliku PhoneGap do zapisu pliku.Czy jest w stanie przetestować plik API PhoneGap File z emulatorem Ripple

File API używam mogłyby się odwoływać w: http://docs.phonegap.com/en/2.0.0/cordova_file_file.md.html#File

używam Ripple Emulator (0.9.9beta) stąd: https://developer.blackberry.com/html5/download przetestować mojej aplikacji w Chrome.

Ale uważam, że Ripple nie może poprawnie obsługiwać interfejsu API pliku PhoneGap.

Na przykład:

Chcę utworzyć plik (root/foo.json) w katalogu przetrwałego

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); 

Działa prawidłowo na iOS symulatora, który zrobił stworzyć odpowiedni plik Pod Właściwe miejsce, ale w emulatorze Ripple działającym w chromie, otrzymałem wywołanie zwrotne on-line i otrzymałem kod błędu 10 (FileError.QUOTA_EXCEEDED_ERR).

Ja również znaleźć kogoś z podobnym pytaniem tutaj: Is it able to test phonegap application outside emulator?

ale nadal bez odpowiedzi.

Czy emulator Ripple obecnie nie działa poprawnie dla interfejsu API PhoneGap? A może przegapiłem jakieś ustawienie?

+0

Myślę, że mogę uzyskać odpowiedź, Ripple obsługuje obecnie podzestaw API PhoneGap i trwają prace nad jego uzupełnieniem: (http://rippledocs.tinyhippos.com/index.html#platforms/phoneGap – windam

Odpowiedz

3

Znaleziony problem. Muszę przyznać limit przed użyciem PERSISTENT obiektu systemu plików. 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); 
}); 

Wydaje Ripple-UI tego nie zrobił dla mnie (sprawdziłem kodu źródłowego w lib/akustyczną/fs.js). Dlatego zawsze otrzymuję FileError.QUOTA_EXCEEDED_ERR.

+0

Interesujące Czy Chrome robi to automatycznie, jeśli tak, jestem ciekawy, że Ripple nie odziedziczy zachowania z przeglądarki, w której działa. –

Powiązane problemy