我能让我的iOS应用程序出现在锁屏界面的左下角吗?

18

如何将我的应用程序图标显示在锁屏底部左侧,并使其链接到应用商店?我能否使用 iBeacons 控制它?如果没有在应用商店中发布该应用程序,是否可以轻松测试?


http://bgr.com/2014/06/03/ios-8-location-based-app-alerts/ - josh
2
我想知道是否有人能够回答Josh的问题:如何让自己的应用程序出现在锁屏界面上? - QED
我们已经到了2015年,但我们仍然没有官方的答案吗?@josh,你找到解决办法了吗? - MeV
1
就像我在这里回答的一样https://dev59.com/4l8e5IYBdhLWcg3wF3WV#26676020 - RobCat
如果同时使用基于GPS和信标的位置检测,会发生什么?1. 基于信标的识别是否会覆盖基于GPS的识别?2. 如果在一个区域放置了多个信标(比如有4家不同的餐厅都有信标),并且用户拥有所有4家餐厅的应用程序,iOS会在锁屏/左上角建议哪家餐厅? - Abhishek Bedi
5个回答

14
在使用iBeacons触发任何功能之前,您必须已经在iOS设备上安装了应用程序。无论用户界面如何,都没有办法让iBeacon的存在自动提示用户从AppStore下载您的应用程序。
唯一的例外是,如果iOS设备已经安装了其他应用程序来提示用户下载您的应用程序。你甚至可以使用像Passbook这样响应beacons的预装应用程序来完成这个操作。但是即使在这种情况下,您也必须以某种方式让第三方应用程序开发者放置自定义代码以链接到您在iBeacon检测时的AppStore页面,或以某种方式让用户输入新的Passbook条目以提示安装您的应用程序。
底线是,所有这些例外情况通常比通过其他机制让人们安装您的应用程序更难。
抱歉。
编辑:似乎很多报道实际上是指iOS8的新推荐应用程序功能。这是一个使用地理围栏(而不是beacons)找到与您位置相关的应用程序的AppStore功能。设置中此功能的描述如下:
“保持此选项打开将允许iOS为您尚未安装的App Store应用程序提供建议。这些可能基于您已安装的内容或附近人们感兴趣的内容。”
同样,这基于地理位置而不是beacons,并且不清楚建议是基于算法(其他人在附近定期使用应用程序),数据库(主要零售商的已知位置)还是付费营销(例如,Starbucks支付Apple在附近的其中一家店时建议他们的应用程序)。可能是三者的结合。
我如何知道这项技术不是基于beacons?因为我收到了一个关于星巴克的应用程序建议(没有安装该应用程序),然后我立即使用了一个非基于iOS的beacon扫描器,验证了周围没有beacons。

2
@davidgyoung 我不认为这是正确的。我刚刚离开了一家商店,它在左下角有一个应用商店图标,因为我没有安装该应用程序。我通过该图标打开它,并呈现出该应用程序的应用商店页面。我也在寻找这个答案。 - Alex Muller
如果应用程序已安装在设备上,它的图标会根据什么准则出现在锁屏上?我们是否需要实施UUID监测来自iBeacon所发送的信息?还是仅从iBeacon配置事件,就能在锁屏上显示已安装的应用程序?我仍然无法理解iOS 8如何显示星巴克的图标并重定向到App Store,如果它没有被安装。 - Javal Nanda
1
如果应用程序已安装并触发了注册到该应用程序的地理围栏或信标监视事件,则锁定屏幕上的图标会出现。AppStore 应用程序也可以做到这一点,但我不知道有任何公共计划基于信标的存在而触发第三方应用程序的安装。当然,苹果可能已经与某些零售商达成了私人交易,在其 AppStore 应用程序中执行此操作。你在哪里看到过这个?在哪些零售商那里? - davidgyoung
@davidgyoung 我能够在AirLocate示例中看到图标,但无法证明其一致性。您能帮我理解一下,如果应用程序每次从外部区域进入范围内,图标是否只会出现一次?应用程序需要在后台运行还是即使未运行,其图标也会显示出来? - Javal Nanda
1
我的理解是,当应用程序在后台时接收到didEnterRegion/didExitRegion回调时,图标会显示出来。这些事件也可以将应用程序启动到后台,但这与图标大多无关。 - davidgyoung
显示剩余8条评论

3

iOS 8会在锁屏界面的下方显示与地理围栏事件相关的应用程序,这可能包括位置或信标事件。

当我进入信标区域时,我正在开发的应用程序会出现在角落里。


我们的应用程序会以什么样的形式出现?iBeacon发送的UUID与我们的应用程序有关吗?我们需要从应用程序层面处理任何内容来检测iBeacon广告,还是纯粹在iBeacon侧进行配置以发送信号,以显示我们的应用程序? - Javal Nanda
2
你需要在你的应用程序中注册UUID,以便信标进行广播。你可以使用CLLocationManager来注册一个带有关联UUID的CLBeaconRegion,这将导致CLLocationManager方法-locationManager:didEnterRegion:的委托被触发。 - Mike Welsh
@MikeWelsh 找不到 CLCircularRegion 和锁屏图标的任何信息。对我来说,只有在 CLBeaconRegion 确定 notifyEntryStateOnDisplay = true 时才会出现。CLCircularRegion 没有此属性,这是否意味着进入 CLCircularRegion 无法将该图标推送到设备锁屏界面? - iiFreeman
我相信属性仅确定当使用信标区域从图标启动时是否调用locationManager:didDetermineState:forRegion:方法。我只使用了CLCircularRegion,而我的应用程序图标对我可见。 - Mike Welsh
@MikeWelsh:如果GPS定位和信标定位同时工作,会发生什么情况?
  1. 信标识别是否会覆盖GPS定位识别?
  2. 如果在一个区域放置了多个信标(比如有4家不同的餐厅都有信标),用户拥有这4家餐厅的应用程序。iOS会在锁屏/左上角建议哪家餐厅?
- Abhishek Bedi
@AbhishekBedi 我先回答第二个问题,因为它比较简单。这些信标的范围非常有限(使用BLE),所以除非4家餐厅位于同一建筑物/空间中,否则很难同时检测到所有4个信标。我认为最后一个被检测到的应用程序将会显示。至于覆盖重写,我无法确定哪个更优先,GPS还是信标。抱歉我在那方面帮不上忙。 - Mike Welsh

2
这个用例被苹果文档描述为iBeacon区域监控,@ElmRid以Estimote为例给出了一个好的示例。

2
您需要在应用程序中注册Beacon广播的UUID。您可以使用CLLocationManager来注册具有关联UUID的CLBeaconRegion,这将导致CLLocationManager方法 -locationManager:didEnterRegion:的委托触发。
以下是一个示例代码,展示如何注册UUID:
``` let uuid = UUID(uuidString: "YOUR_UUID_HERE") let beaconRegion = CLBeaconRegion(uuid: uuid!, identifier: "YOUR_IDENTIFIER_HERE") locationManager.startMonitoring(for: beaconRegion) ```
如果您要查找带有UUID + major + minor的beacon,则需要将它们全部注册。因为每个beacon都是唯一的,您需要为每个beacon设置不同的标识符。
如果iPhone用户从未下载过您的应用程序,他们将无法看到它。Apple会根据您在应用程序中注册的UUID、major和minor信息来确定与您的应用程序相关的beacon。
以下是一个示例代码,展示如何检测是否进入了指定的beacon区域:
``` func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) { if let beaconRegion = region as? CLBeaconRegion { // Entered the region of a specific beacon let uuid = beaconRegion.uuid let major = beaconRegion.major?.intValue let minor = beaconRegion.minor?.intValue // Do something with the beacon information } } ```
其他人也可以通过 Estimote 的“左上角图标”文章来阅读:http://blog.estimote.com/post/97824495825/ios-8-pushes-location-context-to-a-new-level-lock

请通过电子邮件与我联系,我需要快速向您询问一些问题,我的电子邮件已在我的个人资料中写明。谢谢!! - MeV

2

唯一触发使用iBeacon的应用程序的方法是在设备上已经安装该应用程序。 如果未安装该应用程序,则苹果可能会基于地理位置(例如星巴克或苹果店)发送应用程序建议,但这需要向苹果提出请求,并最终获得批准(与提交应用程序无关)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接