2014-02-09 62 views
0

我正在使用appgyver類固醇(phonegap)並嘗試將照片從相機API保存到應用程序文件空間,以便在重新掃描/加載應用程序。我下面從科爾多瓦API文檔(http://docs.phonegap.com/en/1.5.0/phonegap_file_file.md.html#FileSystem)的例子,但我從來沒有從phonegap cordova API window.requestFileSystem()LocalFileSystem.PERSISTENT

window.requestileSystem(LocalFileSystem.PERSISTENT, ...)

的承諾得到了響應未曾解決/拒絕。我究竟做錯了什麼?

# in coffeescript 
console.log "1. window.deviceReady. navigator.camera"+JSON.stringify(navigator.camera), null, 10000 
_fsDeferred = $q.defer() 
window.requestFileSystem(
    LocalFileSystem.PERSISTENT, 
    50000*1024, 
    (fs)-> 
    console.log "2. window.requestFileSystem, FS= "+JSON.stringify(fs), null, 10000 
    _fsRoot = fs.root 
    _fsDeferred.resolve(_fsRoot) 
    (ev)-> 
    console.log "3. Error: requestFileSystem failed. "+ev.target.error.code, 'danger', 10000 
    _fsDeferred.reject(ev) 
) 
_fsDeferred.promise.finally()-> 
    console.log "4. window.requestFileSystem(), Deferred.promise.finally(), args"+JSON.stringify arguments, 'danger', 10000 

我永遠不會到#4,承諾永遠不會解決。

回答

1

AppGyver員工在這裏 - 我從你的代碼創建了一個簡化的repro,它似乎工作正常。請參閱repro here

我在處理您的代碼時遇到的一個錯誤是JSON.stringify(fs)失敗,因爲fs是一個循環結構,而JSON.stringify無法序列化它們。如果你只是做console.log(fs),你會得到好的文件系統對象(你可能需要在Safari Web Inspector中執行location.reload()來捕獲應用程序加載時發生的事情)。

+0

對不起。我在appgyver論壇上更新了我的答案,但忘了在這裏做同樣的事情。 – michael