【问题标题】:Hold XMPP connection in background mode as BLE accessory (iOS, Swift)在后台模式下保持 XMPP 连接作为 BLE 附件(iOS、Swift)
【发布时间】:2016-12-09 06:55:24
【问题描述】:
我正在使用XMPPFramework 制作简单的 iOS Messenger。所以问题是,如果我的应用程序进入后台,它将与 XMPP 服务器断开连接,因此在不打开应用程序的情况下存储传入消息的唯一方法是推送通知(将消息变量添加到推送中),这不是很好的方法。
此外,ma 应用程序使手机充当 iBeacon 以跟踪其他附近手机的位置。据我所知,具有这种功能的应用程序即使在后台也可以保持活动状态,但是当我在后台跟踪 iBeacons 时,我是否也可以保持 XMPP 连接?还是苹果发现并拒绝了此类应用?
感谢您的帮助?
【问题讨论】:
标签:
ios
swift
apple-push-notifications
ibeacon
xmppframework
【解决方案1】:
区分在后台运行的 iOS 应用和已暂停的 iOS 应用非常重要。
是的,您可以使用信标传输让您的应用在后台保持活跃。当它活跃时,您可以在后台进行网络活动,包括 XMPP 调用。
信标检测可以让应用在后台保持活动的时间是有限的。
在接收端,通过同时测距和监视信标,您可以为每个出现/消失的新信标区域保持 10 秒的活动时间,您可以根据要求将其延长至 180 秒。可以通过每 2 分钟旋转一次发送的信标来玩弄这个系统,以确保始终有新的进入/退出事件。
在传输端,iOS 设备只有在前台时才能传输 iBeacon 数据包。因此,您可以做的最好的事情是让接收应用程序在后台保持活动状态,并在最近 3 分钟内在信标范围(约 50 米)内有另一个应用程序在前台时与 XMPP 通信。