我正在更新我在1月份发布的cordova应用程序 - 在对File插件进行重大更改之前。一切都在涟漪(旧式)中运行良好,但是当在iOS模拟器或iOS设备(iOS 7.1)上运行时,我的window.requestFileSystem调用将永远不会返回(既不会失败也不会成功)。持久性和临时文件系统都会出现此问题。
我猜我有一些配置问题。但是,我已经尝试了一切无济于事。添加控制台消息我发现我的代码中的window.requestFileSystem调用确实调用了插件的requestFileSystem.js中的requestFileSystem。我还发现CDVFile方法都被调用(按此顺序:initWithWebView,pluginInitialize,getExtraFileSystemsPreference,getAvailableFileSystems,registerExtraFileSystems(注册库,库 - nosync,文档,文档 - nosync,缓存,包,root))。
然而,exec在requestFileSystem.js中调用" requestFileSystem"根本不会返回,也不会在CDVFile中执行该方法。 (请注意,这是在返回deviceready事件之后。)
关于可能出现的问题或如何进一步调试的任何建议?
答案 0 :(得分:0)
原来这里遇到的问题与文件系统插件没有直接关系。 requestFileSystem(或其他文件插件调用,如上面提到的getDirectory)永远不会返回的原因最终是cordova.exec调用永远不会返回 - 这会在控制台插件(org.apache.cordova.console)被加载后随时发生(然后任何后续的cordova.exec调用都会挂起)。删除控制台插件修复了我的问题。
为什么删除控制台插件是我不太确定的修复。但是,我确实有自己的logger.js可能会以某种方式干扰控制台插件?希望这是我的代码特有的问题。不知道为什么这只是iOS上的一个问题,而不是Android。