iBeacon相关总结

作者: EagleOne | 来源:发表于2016-11-30 16:21 被阅读356次
    • 创建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范围的监测。

    相关文章

      网友评论

        本文标题:iBeacon相关总结

        本文链接:https://www.haomeiwen.com/subject/vrrtmttx.html