当“暂停”事件被捕获时,我的 PhoneGap 应用程序需要向服务器发出一个 websocket(以更新连接状态)消息。
安卓
对于 Android 设备,使用这段代码没有问题:
document.addEventListener("deviceready",function(){
document.addEventListener("pause", function() {
socket.emit('changeStatus', 'incative');
});
document.addEventListener("resume", function() {
socket.emit('changeStatus', 'active');
});
}, false);
IOS
在 iOs 中,这是一个不同的鱼锅。事实上,这里是关于“暂停”事件的官方 PhoneGap 文档:
iOS 怪癖
在暂停处理程序中,任何通过 Objective-C 的调用都将不起作用,任何交互式调用(如警报)也不起作用。这意味着您不能调用 console.log(及其变体),或任何来自插件或 PhoneGap API 的调用。这些只会在应用程序恢复时处理(在下一个运行循环中处理)。
当他们说“通过 Objective-C 的调用将不起作用”时,他们是在谈论使用网络访问吗?事实上,当我在 iOs 上测试我的应用程序时,当我恢复我的应用程序时,我会发送值为“inactive”的“changeStatus”消息。
这是我的第二个问题:在 phonegap iOs 应用程序中是否可以在捕获“暂停”事件后访问服务器?
谢谢你的帮助