2

当通过 PebbleKit JavaScript 框架加载一些 ajax 应用程序崩溃时,我可以通过 console.log() 看到 XMLHttpRequest.open() 调用正常,但它没有通过 XMLHttpRequest.send()。

我以前的类似代码工作正常,但我无法调试这个问题。

它不会触发 onload 事件,也不会超时(不是我可以通过 console.log() 知道的。

我在 pebble 控制台中看到的只是:

[错误] 失去与 Pebble 的连接

查看组合的 url,它似乎没有格式错误,并且可以在桌面浏览器中加载。

4

1 回答 1

3

我可以通过 iOS 控制台(在 xcode 管理器中)看到错误:

PebbleApp[211]:* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[NSURL URLByAppendingPathComponent:]:组件、组件或 pathExtension 不能为 nil。”

深入挖掘,我可以看到其中一个查询字符串元素最后只有一个空格。删除空间解决了这个问题,所以我可以假设它是由于它没有正确地 URLEncoded。

我认为这通常可以通过在移动 webkit 中运行的 JavaScript 来处理,但我猜由于它嵌入到应用程序中,它会更严格并引发异常。

值得注意的是,这是在 2.0 sdk 的 beta 2 中,因此在以后的版本中可能已经更容易诊断了。

于 2014-01-01T17:07:55.357 回答