2013-11-21 13 views
4

我有iOS应用程序(在iPhone上),当ibeacon(服务器)在范围内时触发。只要应用程序在后台或前台运行,它就可以正常运行。ibeacon在范围内时调用iOS应用程序

有没有一种方式来调用应用程序,当它没有运行,并检测到ibeacon?

我通过阅读Apple的CLLocationManager类参考了解到,这种功能是可能的,但我可能是错的。

但是,如果任何人都知道如何实现这一点,一个简短的例子表示赞赏。

有类似的问题,但发布似乎很模糊于是决定再次询问

谢谢!

回答

4

我一直在问这个问题几个星期了,答案是否定的。

苹果公司在这个开发人员论坛很清楚:

“请注意,我所说的是,如果用户明确地杀死在应用切换器应用程序在这一点上用户已经告诉我们。这个应用程序不应该运行,我们将通过不再重新启动应用程序来实现这一点,如果应用程序被操作系统终止(例如由于内存压力),那么我们将继续启动应用程序进行区域监控。如果应用程序被简单地暂停(即用户点击主页按钮离开应用程序),那么是的,我们将继续在区域进入/退出时恢复应用程序。iOS中唯一的变化7 i如果用户明确杀死了应用切换器中的应用程序“。

https://devforums.apple.com/message/886796#886796

+4

从iOS7.1开始,即使应用程序被用户杀死,应用程序仍会在iBeacon事件中启动。 – danielbeard

1

我看到有这个问题,一个公认的答案,但它并不完全正确。您绝对可以通过基于iBeacon进入应用程序发布应用程序。

详细的证明是在我的博客文章在这里:http://developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-in-the-background-and-foreground.html

+1

嘿大卫 - 你当然是对的,如果应用程序在后台,你的应用程序的范围。但是,如果用户完全明确地关闭了应用程序,它将不会有范围。一个有趣的方式来处理这可能是使用Passbook:它是唯一的“应用程序”,将您的手机从“关闭”状态唤醒是我的理解。 – BEEKn

+1

了解,但这是一个比问题中提到的更具体的用例。如果您至少运行一次应用程序来设置iBeacon监控区域,然后重新启动您的手机(确保您的应用程序未在问题提示中在后台运行),则iOS会将该应用程序启动到区域更改的后台。这可以通过我上面链接的博客文章中的示例应用程序来演示,这基本上是问题所要求的。 – davidgyoung

+1

从iOS 7.1开始,这已经发生了变化。我可以从应用程序切换器中杀死应用程序,并且iBeacon将唤醒应用程序,然后我可以成功对其进行排序。即使我重新启动设备,这也可以工作。 – danielbeard

0

需要注意的是在iOS系统中是非常重要的7.1+,即使用户显式地强制杀死的应用程序,如果在监测灯塔地区这一点应用程序将再次启动,并能够在短时间内在后台运行。

+0

你知道这个“短暂的时间”有多长?你在这段时间可以做什么? – Jonathan

+0

AFAIK那时候是约。 5秒。 – Mike

+0

你知道我们是否可以做“我们做什么”?像将文件写入日志? – Jonathan

0

我建议你阅读关于iOS中背景处理的所有内容。根据我的理解,这与用户运行应用程序以及系统资源的功能一样多。根据我的理解,操作系统适应应用程序的使用情况,并编组所有进程以支持应用程序的使用。我怀疑这是切割和干燥。

对于内容下载,建议使用推送消息 - 随时启动更新。如果推动可能不得不推动一条或两条消息“重新注册”,我不会感到惊讶。

相关问题