iOS Beacon随时可用

时间:2017-11-14 09:18:50

标签: ios apple-push-notifications core-location ibeacon core-bluetooth

正如Apple文档中明确指出的那样,信标测距只能在后台进行一段时间,默认情况下最多10秒,或者在后台任务到期处理程序的帮助下最多3分钟。根据我的应用程序的使用案例,应用程序需要每15分钟执行一次信标测距,直到用户退出该区域。我正在考虑为此目的使用后台推送通知(静音推送通知)(假设数据连接始终在设备上可用)。所以流程是这样的,当用户进入该区域时,app使用设备令牌调用服务器,服务器每15分钟发送一次静默推送通知。应用程序收到推送通知后,如果需要,它会在允许的时间段内执行信标范围。我在这里的问题是,在后台模式下使用推送通知进行测距是否合法,我是否会在应用商店提交期间遇到任何问题。

注意:此外,我还需要为应用启用BLE后台模式,以便从某些BLE设备中读取某些特征。

3 个答案:

答案 0 :(得分:4)

从技术上讲,你可以做到,但苹果大多拒绝这样的应用程序。您必须考虑的一件重要事情是,如果应用程序被用户手动杀死而未在后台运行,则应用程序不会通过静默推送通知唤醒。有一种解决方法,如果你有VoIP推送通知它甚至会从终止状态唤醒应用程序。但是在推送到AppStore时你可能需要强有力的理由。

答案 1 :(得分:2)

您可能希望查看this文章。用户谈论使用静默通知触发位置跟踪的应用程序。但最终它是 hack ,Apple 可能拒绝将来的某些时间,因此最好有一个应急计划。 FWIW到目前为止我还没有听到有人报告拒绝。

所以官方的答案是不要这样做,至于你可以参考Ashish's答案的原因。非正式的答案是,如果您无法改变您的业务逻辑,那么您需要自担风险。

答案 2 :(得分:1)

我正在处理的iOS应用程序执行完全相同的事情,除了我正在使用录制而不是Beacon。按iOS标准录制会在将应用推送到应用商店时出现更多问题。

Apple并没有拒绝此应用。虽然我们仍然面临一些问题,但它们与您的问题无关。 除了您正在寻找的答案之外,您可以按照这样的教程获得进一步的帮助:iOS Push Notification Demysitfied

此外,我已经完成了本地通知的触发,而应用程序在后台。 BLE甚至可以如果应用程序被系统杀死,当操作系统从您的外围设备或中心接收到某些通信时, iOS唤醒您的应用在将应用程序重新置于休眠状态之前执行所需的功能。