requestFileSystem在Android中什么都不做。科尔多瓦3.4

时间:2014-04-10 11:16:24

标签: android html5 webkit cordova-3

我有一个应用程序在本周工作正常,我不知道突然改变了什么。

请考虑以下代码。第一个“console.log”输出正确,但其他任何一个都没有输出任何东西。

console.log('requesting file system');
try { 
  requestFileSystem(1, 1024*1024, function(fs) { 
    console.log('file system received. requesting root directory');
    fs.root.getDirectory( options.name, {create:true}, function( directory ) { 
      console.log('root directory received');
      filesystems[options.name] = directory;
      console.log('calling callback');
      if ( callback ) me.fn( me.name, callback ).call( me, me );
      console.log('callback called');
    }, function(e) { 
      console.log('error handler 1');
      console.log(e);
    });
  }, function(e) { 
    console.log('error handler 2');
    console.log(e);
  });
}
catch(e) { 
  console.log('error handler 3');
  console.log(e);
}

任何想法要找什么?

2 个答案:

答案 0 :(得分:1)

通过启动一个全新的应用程序,复制www目录,从已损坏的应用程序重新安装所有插件,我已经“解决了”这个问题。

我不知道有什么问题,但这个干净的安装现在工作正常。

答案 1 :(得分:0)

这个问题很多都面临着,源于cordova nativetoJSbridge的一个错误。 它已在3.6.0中标记为固定,但从未在该版本中使用过。特定版本之上的几个版本可以使用。

如果您正在使用eclipse,请在现有项目中修复它。

  1. 使用cordova安装最新npm并使用CLI创建新项目。
  2. 使用cordova plugin add命令将文件api添加到新项目中。
  3. 将插件添加到项目后,将最新的cordova源代码以及文件api复制到旧项目中。
  4. 另外,复制文件api plugin javascript sources和diff并合并cordova.js。
  5. 现在编译旧项目应解决window.requestFileSystem问题。
  6. 如果您使用的是CLI,那就更好了。从CLI创建一个新项目并将旧项目源复制到新项目并使用CLI添加插件或使用CLI更新项目。

    作为旁注,这个错误已经存在了一段时间,问题似乎就出现了 NativeToJsMessageQueue

    https://issues.apache.org/jira/browse/CB-6761

    虽然从它读取的错误中得不到解决,但它已在3.6.x以上的最新版本中得到修复