Shi*_*dim 9 notifications chat objective-c ios cordova
我有一个由JS开发的聊天应用程序.我想偶尔将PING发送到服务器.如果应用程序在前台运行,这不是问题.问题是当用户最小化它或打开另一个应用程序时.我的应用程序失去了重点并进入暂停状态.
我有两个用例.
PING每X分钟发送到服务器(它是一个IRC服务器),即使应用程序在后台运行.我发现苹果不允许在后台运行应用程序.如果他们允许他们需要特别许可.我发现一些应用通过请求有限长度的执行时间来完成它.获得最高背景执行时间的最佳方法是什么?作为一个聊天程序,我可以请求许可voip,location或任何其他方式?
注意:该应用程序将在没有Internet的环境中运行.因此推送通知在这里不起作用.
更新:经过大量搜索后,我发现了后台提取.似乎背景提取将适应它.但问题仍然存在,未及时调用.
这听起来像一个有趣的问题.从阅读各种评论,听起来你希望这在你本地网络上工作 - 所以你有wifi,但无线路由器/基站没有连接到实际的互联网?
因为后台刷新不可预测 - 你永远不会知道什么时候会更新 - 你可能想要获得创意.
你可以考虑利用iOS VOIP支持,只有没有Voice!Apple在这里有一些关于VOIP的提示.VOIP基本上使用称为SIP(会话发起协议)的东西,它是呼叫的信令层,很像HTTP.您希望利用这个SIP层.
这不会非常简单,但它应该是可以实现的.设置您的应用程序以使用VOIP,然后将PJSip作为您的SIP库.然后,在您的本地网络上有一个SIP服务器(我确定有很多开源实现),你可以注册你的iPhone(所以你的服务器知道你的手机在哪里,假装是一个VOIP手机).这应该有效,因为据我所知,它不需要通过Apple ...并且会在您的本地网络上愉快地运行.
然后,服务器可以通过SIP向手机发送消息,就像它正在发起VOIP会话一样.你的应用程序被唤醒,获取消息 - 如果可能的话,最好从SIP消息中获取 - 然后只是不启动会话.SIP仅用于创建会话,而不仅仅是VOIP.当我在电信研发(很久以前)工作时,我们使用它来交换文本/语音/视频,所有这些都使用本地服务器.
你必须跳出很多箍来使这项工作,但它会非常棒.我从未尝试过这个实际的用例 - 尤其是iOS,但我相信它会起作用.这有点像软糖,但应该让你到达你需要去的地方.
祝好运!
您可以使用 PubNub 之类的工具通过本机 Objective-C 代码或 Phonegap (Cordova) 库通过 iOS 构建此聊天应用程序。
使用 PubNub 等实时消息网络的好处在于,当应用程序转到后台时,您可以轻松地将聊天消息传入 APNS。
当应用程序位于前台时,它只能将它们作为本机 (PubNub) 消息接收。如果它需要“赶上”在后台错过的消息(但通过 APNS 接收),那么实现起来很简单。
此外,PubNub 与平台无关——因此您也可以轻松地在 Web、Android、BB、Windows Phone 等上使用它。
http://www.pubnub.com/blog/build-real-time-chat-10-lines-code/
https://github.com/pubnub/objective-c/tree/master/iOS
https://github.com/pubnub/javascript/tree/master/phonegap
杰雷米
| 归档时间: |
|
| 查看次数: |
4512 次 |
| 最近记录: |