iBeacon

my.startBeaconDiscovery

支付宝客户端 10.1.8 版本开始支持,低版本需做兼容处理

开始搜索附近的 iBeacon 设备

入参

名称类型必填描述
uuidsStringArray目标 iBeacon 设备广播的 uuids
successFunction调用成功的回调函数
failFunction调用失败的回调函数
completeFunction调用结束的回调函数(调用成功、失败都会执行)

示例代码

  1. my.startBeaconDiscovery({
  2. uuids:['uuid1','uuid2'],
  3. success: (res) => {
  4. console.log(res)
  5. },
  6. fail:(res) => {
  7. },
  8. complete: (res)=>{
  9. }
  10. });

Bug & Tip

  • tip: uuid1、uuid2 为目标 iBeacon 的UUID,可从硬件厂商获取,如果为空,无法搜索到 iBeacon
  • tip: iBeacon 需要位置权限,iOS 11 之前需要蓝牙开关打开,iOS 11 以后,需要 设置->蓝牙->开关开启(控制中心的蓝牙开关不影响 iBeacon 使用)
  • tip: 推荐在 my.onBeaconUpdate 回调中处理发现到的iBeacon设备信息

my.stopBeaconDiscovery

支付宝客户端 10.1.8 版本开始支持,低版本需做兼容处理

停止搜索附近的 iBeacon 设备

入参

名称类型必填描述
successFunction调用成功的回调函数
failFunction调用失败的回调函数
completeFunction调用结束的回调函数(调用成功、失败都会执行)

示例代码

  1. my.stopBeaconDiscovery({
  2. success: (res) => {
  3. console.log(res)
  4. },
  5. fail:(res) => {
  6. },
  7. complete: (res)=>{
  8. }
  9. });

my.getBeacons

支付宝客户端 10.1.8 版本开始支持,低版本需做兼容处理

获取已经搜索到的 iBeacon 设备

入参

名称类型必填描述
successFunction调用成功的回调函数
failFunction调用失败的回调函数
completeFunction调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数名类型说明
beaconsObjectArrayiBeacon 设备列表
errCodeStringerrorCode=0 ,接口调用成功
errorMsgStringok

iBeacon 结构:

参数名类型说明
uuidStringiBeacon 设备广播的 uuid
majorStringiBeacon 设备的主 id
minorStringiBeacon 设备的次 id
proximityNumber表示设备距离的枚举值(0-3分别代表:未知、极近、近、远)
accuracyNumberiBeacon 设备的距离
rssiNumberiBeacon 信号强度

示例代码

  1. my.getBeacons({
  2. success: (res) => {
  3. console.log(res)
  4. },
  5. fail:(res) => {
  6. },
  7. complete: (res)=>{
  8. }
  9. });

Bug & Tip

  • bug: Android 支付宝客户端 10.1.28 及以前的版本该接口返回的 rssi 值不能动态更新,推荐使用事件触发方式

my.onBeaconUpdate()

支付宝客户端 10.1.8 版本开始支持,低版本需做兼容处理

监听 iBeacon 设备的更新事件

CALLBACK返回参数说明:

参数名类型说明
beaconsObjectArray当前搜寻到的所有 iBeacon 设备列表

iBeacon 结构:

参数名类型说明
uuidStringiBeacon 设备广播的 uuid
majorStringiBeacon 设备的主 id
minorStringiBeacon 设备的次 id
proximityNumber表示设备距离的枚举值(0-3分别代表:未知、极近、近、远)
accuracyNumberiBeacon 设备的距离
rssiNumberiBeacon 信号强度

示例代码:

  1. my.onBeaconUpdate({
  2. success: (res) => {
  3. },
  4. })

my.onBeaconServiceChange()

支付宝客户端 10.1.8 版本开始支持,低版本需做兼容处理

监听 iBeacon 服务的状态变化

CALLBACK返回参数说明:

参数名类型说明
availableBoolean服务目前是否可用
discoveringBoolean目前是否处于搜索状态

示例代码:

  1. my.onBeaconServiceChange({
  2. success: (res) => {
  3. },
  4. })

Bug & Tip

  • tip: iOS 11及以后版本 “控制中心蓝牙开关” 和 “设置->蓝牙->开关” 分离,控制中心蓝牙开关不再影响 iBeacon 使用,但是 my.onBeaconServiceChange 事件仍然会回调,建议iOS 11以后该事件回调以后继续等待 my.onBeaconUpdate 以确认是否提示用户开启蓝牙。

错误码梳理

错误码说明备注
11000unsupport系统或设备不支持
11001bluetooth invalid蓝牙服务不可用
11002location service unavailable位置服务不可用
11003location authorization forbidden位置服务权限禁止
11004already discovering已经开始搜索
11006uuid invalidUUID格式错误
11008uuids empty参数错误,UUID 数组为空

原文: https://docs.alipay.com/mini/api/yqleyc