PhoneGap陷入困境(webView:identiferForInitialRequest:fromDataSource)kCFRunLoopDefaultMode

时间:2014-12-01 23:19:35

标签: ios cordova

我有一个继承的iOS / phonegap项目需要通过websockets连接。该应用程序似乎在大多数时间都有效。

有时,连接后,调试控制台中会显示以下消息。

2014-12-01 15:11:23.167 xxx[4156:1044391] void SendDelegateMessage(NSInvocation *): delegate (webView:identifierForInitialRequest:fromDataSource:) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode
2014-12-01 15:11:33.169 xxx[4156:1044391] void SendDelegateMessage(NSInvocation *): delegate (webView:identifierForInitialRequest:fromDataSource:) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode

此时,整个应用程序冻结。似乎主运行循环正在等待JS和本机层之间的多次调用之一的响应。它永远不会解析并每10秒打印一次错误。

我认为这可能是JS回调中的错误或者无法从PhoneGap调用返回正确结果的问题。问题是在连接上发生了十几次异步PhoneGap调用。

我真的在寻求帮助以确定是否存在: 1.有些方法我可以安全地恢复webview OR 2.跟踪哪个PhoneGap呼叫实际导致问题

干杯。

1 个答案:

答案 0 :(得分:0)

看起来问题是一个失控的phonegap调用导致原生层中的JS解释器耗时太长。

我最终记录了每次拨打phonegap(大约30个)并确定了失控呼叫。