苹果'无论应用程序状态如何,iBeacon技术都可以进行检测:前景,后台或被杀或系统重启。是否有最佳实践方法,以尽量减少应用商店提交拒绝?我已经安装了一个允许后台进程的插件(https://github.com/katzer/cordova-plugin-background-mode) - 它完美无缺*(下面的说明),但有很多帖子说这可能会导致苹果的拒绝。
我也明白,对于iOS内存管理,如果我的应用程序在不在前台时使用了大量内存,它将自动终止我的bg进程。
假设我的应用暂时没有消耗太多'存储器...
如果无论应用程序状态如何,手机无法访问检测功能,那么让iBeacons变得无足轻重就显得非常重要。我知道我需要向苹果提出一个案例,说明为什么我的应用程序需要此功能。但这似乎是夸张的 - 我需要使用你(苹果)提供的技术的功能 - 如果你必须总是准备你的手机以获得它们,iBeacons的价值会大幅下降(超越第一个获得权限的第一个应用程序启动requestAlwaysAuthorization)
我不必要地烦恼吗?我不想把这种发展一直带到完美只是为了发现我无法使用它。
答案 0 :(得分:1)
了解原生iOS代码(Swift或Objective C)可以利用iOS CoreLocation
框架检测信标的能力,即使应用程序根本不运行也是如此。 CoreLocation
通过记住应用正在监控哪些信标区域来实现此目的,并在遇到信标时如果未运行则自动启动应用。 Apple设计了这种机制并批准了它的使用,它是背景信标检测应用程序通常进入AppStore的方式。
这与cordova-plugin-backgroun-mode插件的工作方式非常不同。作为插件注释的自述文件,Apple评论者可能不会批准一个让自己在后台继续活着的应用程序。 你是对的。
除了将您的应用重写为原生应用之外,您最好的选择可能是将其打造成混合应用。依赖于本机代码仅用于后台信标检测,然后在启动或恢复后使用Cordova作为前台UI。