Cordova应用结合Bluetooth BLE beacon实现到店推送签到的可行性咨询
问题答复
关于第一个方案的可行性说明
你提到的「获取设备自身蓝牙UUID存入数据库,由树莓派扫描匹配触发推送」的方案完全不可行,核心原因如下:
- 安卓、iOS系统出于用户隐私保护的设计,早已禁止第三方应用获取设备固定的原生蓝牙MAC地址,对外暴露的蓝牙标识均为动态生成的临时UUID,每隔数小时或重启蓝牙、重启设备后就会变更,存入数据库的标识完全没有长期匹配的价值。
- 该方案需要用户设备长期对外广播蓝牙信号,耗电量极高,普通用户几乎不可能长期授权该权限,落地可行性极低。
- 系统底层未开放固定蓝牙UUID的读取接口,无论哪款Cordova蓝牙插件都无法实现该需求,不需要再继续找相关插件。
关于第二个方案的可行性说明
用户端主动扫描周边Beacon设备是线下点位签到场景的标准实现方案,完全可行,后台扫描能力可实现,无需用户主动打开APP,具体适配要求如下:
- 安卓端:只要用户授予APP「始终允许位置权限」+「后台活动权限」,且保持蓝牙开启,应用即可在后台甚至进程完全关闭的状态下扫描到Beacon信号,触发本地签到通知。你提到的两款Cordova蓝牙插件均支持该能力,只需在项目
config.xml中添加对应的后台权限配置即可。 - iOS端:只要用户授予APP「始终允许位置权限」,且保持蓝牙开启,系统原生支持Beacon区域监听能力,即使用户完全杀掉应用进程,进入提前注册的Beacon UUID对应的区域时,系统会自动唤醒应用数秒,足够完成签到逻辑并触发推送,两款插件均已适配该系统能力。
补充:该方案仅需要点位侧的Beacon设备持续广播信号,单节纽扣电池即可支撑1-2年的使用,用户端仅被动扫描,耗电量极低,用户接受度远高于第一个方案。
内容的提问来源于stack exchange,提问作者pkdkk
相关产品推荐
相关产品推荐

