window.3requestFileSystem在ver 3.3.0中未定义

时间:2013-12-30 08:37:35

标签: javascript ios apache cordova

我一直在使用Cordova(使用iOS)我正在开发的应用程序已有一段时间了。我以前能够很好地访问文件系统。

我通过命令行界面安装了带有Node的cordova 3.3.0并添加了我需要的所有插件(当然几乎所有的插件 - 包括文件)

当我列出插件时,我得到: Michaels-MacBook-Pro:你好michael $ cordova插件ls

[ 'org.apache.cordova.battery-status',
'org.apache.cordova.console',
'org.apache.cordova.device-motion',
'org.apache.cordova.device-orientation',
'org.apache.cordova.dialogs',
'org.apache.cordova.file',
etc....']

但是,我尝试运行以下测试代码:请注意,代码位于index.js文件中,该文件在index.html中正确引用

Index.html参考:

 script type="text/javascript" src="cordova.js"
 script type="text/javascript" src="js/index.js"

index.js:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    alert("ready");
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 5*1024*1024, gotFS, fail);
}

function gotFS(fileSystem) {
   alert("got fs");
   alert(fileSystem.root.fullPath);
}

我得到的只是“准备好” 如果我尝试提醒(window.requestFileSystem);我得到了不确定。

请有人帮助我解决这个问题吗?我认为没有理由不这样做。

非常感谢任何帮助!

亲切的问候,

迈克尔麦克唐纳德

2 个答案:

答案 0 :(得分:1)

您是否添加了文件传输插件?

cordova plugin add org.apache.cordova.file-transfer

答案 1 :(得分:0)

如果您正在使用chrome测试您的应用,则可能必须首次运行此操作以在文件系统上保留一些空间:

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

https://developers.google.com/chrome/whitepapers/storage

的更多信息

我不确定这个解决方案是否符合您的情况,因为您说您的应用程序过去有效,但请试一试。