iBeacon相关总结

  • 创建iBeacon对象
CLBeaconRegion* beaconRegion = [[CLBeaconRegion alloc]initWithProximityUUID:[[NSUUID alloc]initWithUUIDString:@"FDA50693-A4E2-4FB1-AFCF-C6EB07647825"]//只指定这个参数则匹配所有相同UUID的Beacon
                                                                                                                 major:10021
                                                                                                                minor:8775
                                                                                                            identifier:@"怪蜀黍的ibeacon"];//这个属性标识注册在系统内的Beacon Region
  • 指定是否在边界穿越事件中通知给App
    //如果在用户离开区域时不需要通知App,则可以设置区域的notifyOnEntry属性为NO。
    beaconRegion.notifyOnExit = YES;
    beaconRegion.notifyOnEntry = YES;

如果在边界穿越情况发生时,app没有在后台启动,系统会在后台启动app,使app处理这个情况。在启动时,你的app必须配置新的位置管理器location manager ,设置委托对象之后,这些事件通知会发送给locationManager:didExitRegion:和***locationManager:didEnterRegion: ***这两个方法。

  • notifyEntryStateOnDisplay此属性含义,默认值是NO
    beaconRegion.notifyEntryStateOnDisplay = YES;

当设置为YES时,位置管理器在用户打开屏幕且设备已经在Beacon Region范围内时发送通知。 即使你的应用没有 运行,这些通知也会传送。 在这种情况下,系统会在后台启动您的应用,以便它可以处理通知。在这两种情况下,如果位置管理器有委托对象delegate,位置管理器会调用这个方法*** locationManager:didDetermineState:forRegion:***

  • iBeacon两种模式
    //监测模式
    [self.locationManager startMonitoringForRegion:beaconRegion];

Region事件会被分发给locationManager:didEnterRegion:locationManager:didExitRegion:这两个代理方法。
如果失败則调用委托人的***locationManager:monitoringDidFailForRegion:withError: ***协议方法
一个app最多注册20个Region。

    //检测是否在范围模式
    [self.locationManager startRangingBeaconsInRegion:beaconRegion];

一旦注册,位置管理器会调用***locationManager:didRangeBeacons:inRegion: , 报告任何碰到的beacons给它的委托对象。
调用
locationManager:rangingBeaconsDidFailForRegion:withError: ***来提供合适的错误信息。

如何在后台监测ibeacon对象呢?

notifyEntryStateOnDisplay属性设置为YES,同时把位置管理器的委托设置为AppDelegate,实现*** locationManager:didDetermineState:forRegion:这个方法,根据CLRegionState,区分不同的状态,来做对应的通知。
实现
locationManager:didEnterRegion:*** 和locationManager:didExitRegion:这两个协议方法,来实现用户离开beacon范围的监测。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CLLocationManager The CLLocationManager class is the cent...
    没刀的大佐阅读 1,362评论 1 4
  • @end 与之前一样,你需要初始化位置管理器并设置它们的 delegate 。 在 application:did...
    LiWeiJ阅读 2,187评论 0 0
  • 1. iBeacon是什么? 维基百科:iBeacon是苹果公司提出的"一种可以让附近手持电子设备检测到的一种新的...
    丨n水瓶座菜虫灬阅读 4,450评论 5 9
  • 2015.10.19 airlocate 本文摘抄加个人总结 ========= airlocate显示如何使用这...
    Puiwah_Wai阅读 5,376评论 2 5
  • 做一件事 现在知识付费平台很多,「得到」、「一块听听」、「千聊」、「在行」等各种学习的平台,职场中的人什么都想学,...
    杨作辉阅读 359评论 2 3