3

环境

  • iOS 6.1
  • 代码
  • 电话GAP

代码片段

document.addEventListener('deviceready', function () {
  window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
    fileSystem.root.getFile("state.json", {}, success, faliure);
  });
});

有了上面的代码

  1. 'deviceready' 被调用。
  2. 'requestFileSystem' 回调被成功调用。
  3. 'fileSystem.root.getFile'永远不会回调(既不是 SUCCESS 也不是 FAILURE )。

问题描述

  1. 使用 xcode @CDVFile.m 进行跟踪很明显,尽管成功调用了 sendPluginResult,但 JavaScript 方法并未被执行。
  2. 按下主页按钮将应用程序置于后台并重新激活它使上述流程工作
  3. 在 iPhone 模拟器上这个问题不能产生
  4. 扩展和折叠通知窗格也会导致 JScript 回调被执行

什么可能导致这个问题?

上述用例可能有什么问题?

任何帮助将不胜感激

4

2 回答 2

2

上面提到的是指定具有 ~invalid~ js 文件名的部分的副作用,似乎名称解析对于 Safari @ iOS 是区分大小写的(与某些桌面浏览器相比),我发现以下链接对查明非常有帮助这个。 http://www.mobilexweb.com/blog/iphone-5-ios-6-html5-developers(具体是新的 JScript 调试功能)

于 2013-09-15T08:29:46.683 回答
1

嘿,我遇到了同样的问题,但我认为是不同的根本原因。我在这里写了解决方案:

https://groups.google.com/d/msg/phonegap/skiqf9wQCbY/5UuyCz1cSwAJ

对上述内容的小修正:

https://groups.google.com/d/msg/phonegap/skiqf9wQCbY/jq5pJbwMFS8J

只是想在这里发帖为大家谋福利。

于 2014-02-27T19:42:48.860 回答