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

iBeacons:cordova实现(ios):背景检测的最佳实践是什么,cordova,app-store,cordova-plugins,ibeacon,Cordova,App Store,Cordova Plugins,Ibeacon,苹果公司的iBeacon技术允许检测,无论应用程序的状态如何:前台、后台、死机或系统重启。是否有一种最佳实践方法可以做到这一点,从而最大限度地减少app store提交拒绝?我已经安装了一个插件(),它允许后台处理,并且工作得很好*(下面的说明),但是有很多帖子说这可能会导致苹果的拒绝 我所说的完美是指,当应用程序被推到后台、死机时,甚至在手机重启后,它都能正常工作。这很难确认,但我认为iOS会在一段时间后消灭它。我得到了不一致的结果 我也明白,如果我的应用程序在不在前台的情况下使用大量内存

苹果公司的iBeacon技术允许检测,无论应用程序的状态如何:前台、后台、死机或系统重启。是否有一种最佳实践方法可以做到这一点,从而最大限度地减少app store提交拒绝?我已经安装了一个插件(),它允许后台处理,并且工作得很好*(下面的说明),但是有很多帖子说这可能会导致苹果的拒绝

  • 我所说的完美是指,当应用程序被推到后台、死机时,甚至在手机重启后,它都能正常工作。这很难确认,但我认为iOS会在一段时间后消灭它。我得到了不一致的结果
我也明白,如果我的应用程序在不在前台的情况下使用大量内存,iOS内存管理将自动终止我的bg进程

假设我的应用程序不会占用“太多”内存

如果不管应用程序的状态如何,手机都无法进行检测,那么iBeacons的全部价值似乎就微不足道了。我明白我需要向苹果说明为什么我的应用程序需要这个功能。但这似乎是在夸夸其谈——我需要使用你(苹果)提供的技术的功能——如果你必须始终为你的手机充电才能获得iBeacons的价值,那么iBeacons的价值就会显著下降(除了第一次应用程序发布获得requestAlwaysAuthorization许可之外)


我是不是在无谓地烦恼?我不想把这项开发做得尽善尽美,结果却发现我无法使用它。

了解本机iOS代码(Swift或Objective C)可以利用iOS
CoreLocation
框架检测信标的能力,即使应用程序根本没有运行
CoreLocation
通过记住应用程序正在监视的信标区域,并在遇到信标时自动启动应用程序(如果应用程序未运行)。苹果设计了这种机制并批准了它的使用,而背景信标检测应用程序通常就是这样进入AppStore的

这与cordova插件背景模式插件的工作方式非常不同。正如插件自述文件所指出的那样,苹果的评论员可能不会批准一款在后台持续运行的应用程序你的担心是对的。


除了将应用程序改写为纯本地应用程序,您最好的选择可能是将其变成混合应用程序。仅在后台信标检测中使用本机代码,然后在启动或恢复后,在前台用户界面中使用Cordova。

谢谢!这是有道理的。请允许我再一次使用这个场景。在每次启动时,应用程序将检索我们远程存储(自定义消息等)的合理GPS半径内所有信标的服务器数据,并将其存储在本地SQLLite数据库中。然后按照您的建议,我们将在应用程序中提供一些本机代码,以便随时了解信标。当该代码被触发时,它将立即打开应用程序,触发某种方法来获取SQL数据,从而具有通过本地通知显示信标消息的上下文。这听起来合理吗?我不认为你可以“立即打开应用程序”。在后台进行本机信标检测时,您可以运行本机代码约5秒钟,但无法启动任何UI,因此我认为您无法在Cordova容器中运行JS代码。您必须以本机方式获取本地通知的SQL数据。我明白了。。。因此,我认为在这个过程中我可以从代码中执行任何东西的假设是错误的。所有蠕虫——iBeacon检测、SQL检索和附带的本地推送通知——都必须在本机代码中发生。哎呀。对一个小项目感兴趣?:)不幸的是,我认为这是正确的。如果你最终需要项目帮助,我的个人资料页面上会有联系信息。谢谢。我刚发了一封电子邮件。如果您有时间或感兴趣,请回复。干杯