| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
9年前发布

iOS8 锁屏应用推送

介绍了ios8最新特性:屏幕锁定状态时,根据地理围栏推送附近的app的相关知识。

什么是锁屏推送

ios8在锁屏状态下收到推送消息,且显示了应用的图标,注意到下图左下角KFC的图标了吗?这是什么,你见过吗?

iOS8 锁屏应用推送

没错,这就是ios8的最新特性,或者说一套技术组合实现的,包括:

  • 建议的应用程序(Suggested Apps)

  • 地理围栏(GPS Geo-fences)

  • 锁屏消息推送(Lock screen notifications)

  • iBeacon 

想象下这种场景:当你进入某个商家门店附近时,会收到这个商家推送的消息或建议的应用(这个应用可能你已经安装,也可能没安装,就推送 appstore的下载地址),离开后会收到一条感谢消息;当你进入星巴克时,星巴克的app已经自动推送到你锁屏的左下角了,不用解锁、搜寻你的星巴克 应用就可以快速打开了。不错吧,类似的业务场景还可以想象的更多,特别是针对o2o应用,让更多激动人心的创新变成可能。

那,在这种体验到底是如何实现的呢?下面对这4个技术路线分别进行简要介绍一下:

一、建议的应用程序

iOS8 锁屏应用推送

建议的应用程序是实上是一个打开app的快捷键,使用GPS定位,ios8设备可以跟踪你的位置,当某个app得到了你的位置,这个app就可以展 示在锁屏左下角,滑动它可以快速打开此app(如果没有安装就跳到appstore下载)。此功能可能会对某些用户来带来骚扰,用户可以在上面关闭此推送 功能,或针对单独应用关闭。如下图:

iOS8 锁屏应用推送


二、地理围栏

地理围栏是指基于位置的周边虚拟边界,当你离开或进入这些特定位置时,应用程序会通过地理围栏来提醒你。

iOS8 锁屏应用推送

iOS8 锁屏应用推送

三、锁屏消息推送

由apple自动实现消息推送,技术实现上应该也是apns服务,只不过展示的位置不同而已。如果你的app具体beacon能力,不管你的app是开启或关闭或手机刚重启,均可以探测到beacon信号,由建议的应用程序,就可以根据商家唯一标识,推送特定商家的广告等内容。

iOS8 锁屏应用推送

ios7与ios8对应用推荐的不同处理

四、iBeacon

iBeacon[1] 是苹果公司2013年9月发布的移动设备用OS(iOS7)上配备的新功能。其工作方式是,配备有 低功耗蓝牙(BLE)通信功能的设备使用BLE技术向周围发送自己特有的ID,接收到该ID的应用软件会根据该ID采取一些行动。比如,在店铺里设置 iBeacon通信模块的话,便可让iPhone和iPad上运行一资讯告知服务器,或者由服务器向顾客发送折扣券及进店积分。此外,还可以在家电发生故 障或停止工作时使用iBeacon向应用软件发送资讯。(百度) 近场通讯的技术之前还有 NFC(RFId)、红外线等,事实在apple pay也是用NFC技术的。(参考 NFC与蓝牙的优劣)。

beacon是硬件,iBeacon是软件。

beacon硬件只会发送消息给支持iBeacon协议的设备,发送的数据结构由3部分组成:一个UUID,标识beacon商 家,一个major,标识区域,如商家位置,一个minor,标识子区域,如果商家的一个部分,如销售部。beacon不接收消息,只发送消息。 beacon不会发送具体商家促销等内容,它只发位置信息,收到位置消息的app,在监听到位置信息后,再根据业务逻辑推送促销内容。

目前4s+ios7.1以上都支持ble4(及支持ibeacon),android据说在anroid L版本会支持。(传统做法是驻留服务在后台不停扫瞄或双服务或闹钟服务,这些都比较耗电,没有可用性,还得等新版本android在系统层支持才行)。



业务场景要解决的两个主要问题

上述4种技术互相混合,就产生了最开始描述的应用场景,基于位置的app要解决两个主要问题:一是跟踪我的位置;二是兴趣点标识(如商家的位置)。两者都需要互联识别和匹配,才可以实际推荐特定应用、根据特定应用推送特定消息。

下面分开具体解释现在的做法。

一、跟踪位置

传统做法是通GPS定位来实现,同时辅以wi-fi热点、基站信息,三种方法来修正用户的位置,但这种定位数据不够精确,常常有较大的误差,特别是 在室内时。这就需要在室内(商家)布署不同的热点设备,之前小米等公司的做法是架设wi-fi设备,跟电信号百推广的free-chinanet的做法类 似,现在推广的情况不清楚。apple的做法就是架设不同的iBeacon设备,据传平安付在做。两者均需要架设设备,所有会是一个比较漫长的过程。如果 这个流量入口抢占了,将会又一个技术革命。只要成本和收益可观,商家应该是愿意尝试的,而且还可以把线下支付场景一并接入(虽然银联一直在打压线下支付, 但革命潮流是阻挡不住的!)。

二、商家标识

室内定位是哪外一套技术解决方案,apple的做法是使用iBeacon技术,它基于蓝牙BLE4.0以上协议实现,需要在各商家铺设各iBeacon硬件设备,每个设备都有唯一的标识。目前国内有很多厂商在生产这种设备了(如这家,包括微信也支持类似设备接入和绑定了(微信什么都做!)。有的厂家成本可以做到30元一个,覆盖范围在40米左右。当然覆盖范围还跟室内环境有一定关系,如障碍物等。一台手机可以支持20个区域监控(来源 百度)。这些厂家已经实现类似如下功能:扫描周围的传感器设备、读取传感器设备的参数、上传传感器设备状态(电池、UMM等)至 云平台、设置传感器等。


下一步,技术实现

作为一名开发者,你所要做的就是设置beacon区域监控/beacon地理围栏,然后等用户进入这个区域,这个APP的图标将自动出现在锁屏上。

技术实现上,首先得开启info.plist

<key>NSLocationAlwaysUsageDescription</key>  <string>当你靠近星巴克时可以在锁屏时更容易的访问星巴克APP</string>

慎重!NSLocationAlwaysUsageDescription在提交app审核时,审核说明一定要说清楚应用场景,否则很可能拒掉!!

下面的代码基于 EstimoteSDK

#import "ESTBeaconManager.h"    @interface AppDelegate () <ESTBeaconManagerDelegate>  @property (strong, nonatomic) ESTBeaconManager *beaconManager;  @end    @implementation AppDelegate    - (BOOL)application:(UIApplication *)application  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {      self.beaconManager = [[ESTBeaconManager alloc] init];            // modify the region definition to match your set of beacons      ESTBeaconRegion *region =          [[ESTBeaconRegion alloc]           initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID           major:12345           minor:54321           identifier:@"My region"];            [self.beaconManager requestAlwaysAuthorization];      [self.beaconManager startMonitoringForRegion:region];            return YES;  }    @end


参考

ibeacon faq http://blog.beaconstac.com/2014/08/beacon-faqs-everything-you-need-to-know/

业务场景 http://blog.beaconstac.com/2014/08/marketing-with-ibeacons-10-tips-to-make-the-most-of-it/

http://blog.estimote.com/post/97824495825/ios-8-pushes-location-context-to-a-new-level-lock

http://blog.beaconstac.com/2014/09/how-ios-8-takes-beacon-enabled-apps-to-the-next-level-enables-ibeacon-triggered-lock-screen-notifications/

http://www.gottabemobile.com/2014/09/28/how-to-use-suggested-apps-in-ios-8/


作者

朱淦 350050183@qq.com

http://my.oschina.net/u/1263162/blog

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1437916110057.html
IOS iOS开发 移动开发