iBeacons:cordova实现(ios):背景检测的最佳实践是什么

时间:2016-03-18 20:44:30

标签: cordova app-store cordova-plugins ibeacon

苹果'无论应用程序状态如何,iBeacon技术都可以进行检测:前景,后台或被杀或系统重启。是否有最佳实践方法,以尽量减少应用商店提交拒绝?我已经安装了一个允许后台进程的插件(https://github.com/katzer/cordova-plugin-background-mode) - 它完美无缺*(下面的说明),但有很多帖子说这可能会导致苹果的拒绝。

  • 完美地说,我的意思是它可以在将应用程序推到后台,杀死甚至在重新启动手机后起作用。这很难确认,但我认为iOS会在一段时间后将其删除。我的结果不一致......

我也明白,对于iOS内存管理,如果我的应用程序在不在前台时使用了大量内存,它将自动终止我的bg进程。

假设我的应用暂时没有消耗太多'存储器...

如果无论应用程序状态如何,手机无法访问检测功能,那么让iBeacons变得无足轻重就显得非常重要。我知道我需要向苹果提出一个案例,说明为什么我的应用程序需要此功能。但这似乎是夸张的 - 我需要使用你(苹果)提供的技术的功能 - 如果你必须总是准备你的手机以获得它们,iBeacons的价值会大幅下降(超越第一个获得权限的第一个应用程序启动requestAlwaysAuthorization)

我不必要地烦恼吗?我不想把这种发展一直带到完美只是为了发现我无法使用它。

1 个答案:

答案 0 :(得分:1)

了解原生iOS代码(Swift或Objective C)可以利用iOS CoreLocation框架检测信标的能力,即使应用程序根本不运行也是如此。 CoreLocation通过记住应用正在监控哪些信标区域来实现此目的,并在遇到信标时如果未运行则自动启动应用。 Apple设计了这种机制并批准了它的使用,它是背景信标检测应用程序通常进入AppStore的方式。

这与cordova-plugin-backgroun-mode插件的工作方式非常不同。作为插件注释的自述文件,Apple评论者可能不会批准一个让自己在后台继续活着的应用程序。 你是对的。

除了将您的应用重写为原生应用之外,您最好的选择可能是将其打造成混合应用。依赖于本机代码仅用于后台信标检测,然后在启动或恢复后使用Cordova作为前台UI。