IOS的IBeacon是苹果在2014年推出的规范,并且从IOS7开始支持(必须在IPhone 4S 以上的机型才支持),目前应用市场来看,使用蓝牙近场通信使用最多的是微信的摇一摇周边,毕竟蓝牙的用户使用成本太高,驱动用户开启蓝牙并进行相关的操作成本太高,扯远了,从技术流程实现的角度,如何实现这一功能?
微信摇一摇周边:是微信2015年推出的一个周边推送功能。
集成方案
在开发之前,需要选择IBeacon设备的集成商(提供蓝牙设备及SDK等开发包),度娘一下可以找到不少的设备集成商,我使用了Bright Beacon的集成方案,设备做工一般吧,SDK文档还算完备,本文更多还是介绍实现流程,IBeacon设备都大同小异,选择合适的就行。
Bright Beacon集成方案,度娘一下,具体看官方介绍。
蓝牙设备(外壳拆开后,做工一般)
实现效果(app运行图)
实现一个简化版的周边摇一摇(只是尝试性功能模块,设计和交互细节略粗糙),但基本的交互都实现出来了:
1.扫描周边蓝牙设备;
2.根据匹配的信息,返回推送信息;
3.浮窗提醒用户
基本概念
BeaconRegion
beaconRegion是可自定义的区域,用于蓝牙扫描的区域信息,如果手机在蓝牙设备发射范围内(进入、持续监听、离开),则返回相应的状态
Beacon
Beacon是识别到的蓝牙设备对象,对应部署的蓝牙发射器,一般有以下的属性:
1.macAddress:设备的物理地址(一般不可更改);
2.UUID:设备的唯一ID,一般是自定义;
3.major:主要区域标识,可定义(例如:xxx商场的标记);
4.minor:次要区域标识,可定义(例如:xxx商场的xxx店铺);
5.accuracy:相对距离,可用于排序或筛选处理
具体实现流程
本实现流程只扫描指定配置的Region,所以准确度较高,但如果部署的区域和设备非常多的话,不适用,而应该采用全部扫描的方式,但本文不再展开描述;
其他蓝牙应用技术
1.IOS的IBeacon可以在用户未打开app情况下(app被用户授权使用蓝牙,并且打开蓝牙扫描),向用户发送通知(类似远程推送);
2.根据发射范围的状态:进入、持续监听、离开,根据状态的不同,做出不同的响应(在我的应用中,并未开启这些配置,而且扫描1次后关闭了蓝牙扫描);
应用场景
- 蓝牙扫一扫、签到;
- 区域推送;
- 现场互动,寻宝
- ==