ibeacon

iBeacon模块用于搜索附件的iBeacon设备。

HBuilderX1.1.0及以上版本支持此功能。

方法:

对象:

回调方法:

权限:

5+功能模块(permissions)

  1. {
  2. // ...
  3. "permissions":{
  4. // ...
  5. "iBeacon": {
  6. "description": "iBeacon"
  7. }
  8. }
  9. }

startBeaconDiscovery

开始搜索附近的iBeacon设备

  1. void plus.ibeacon.startBeaconDiscovery(options);

说明:

搜索成功后触发successCB回调,失败触发errorCB回调。

参数:

options参数为json类型,包含以下属性:

  • uuids: (Array[String])可选 要搜索设备的uuid
  • ignoretoothAvailable: (Boolean)可选 是否校验蓝牙开关Android平台忽略此属性,iOS平台默认值为false。
  • success: (IBeaconSuccessCallback)可选 搜索设备成功回调函数
  • fail: (IBeaconFailCallback)可选 搜索设备失败回调函数
  • complete: (IBeaconCompleteCallback)可选 搜索设备操作完成回调函数调用成功或失败都会触发此回调。

返回值:

void: 无

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>iBeacon Example</title>
  6. <script type="text/javascript" >
  7. // 扩展API加载完毕后调用onPlusReady回调函数
  8. document.addEventListener('plusready', onPlusReady, false);
  9. // 扩展API加载完毕,现在可以正常调用扩展API
  10. function onPlusReady(){
  11. }
  12. // 搜索iBeacon设备
  13. function startBeaconDiscovery(){
  14. plus.ibeacon.startBeaconDiscovery({
  15. success;function(){
  16. plus.nativeUI.alert('start success');
  17. },
  18. fail:function(e){
  19. plus.nativeUI.alert('start error: '+JSON.stringify(e));
  20. }
  21. });
  22. }
  23. </script>
  24. </head>
  25. <body >
  26. <button onclick="startBeaconDiscovery()">开始搜索</button>
  27. </body>
  28. </html>

uni-app使用plus注意事项

stopBeaconDiscovery

停止搜索附近的iBeacon设备

  1. void plus.ibeacon.stopBeaconDiscovery(options);

说明:

取消成功后触发successCB回调,失败触发errorCB回调。

参数:

options参数为json类型,包含以下属性:

返回值:

void: 无

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>iBeacon Example</title>
  6. <script type="text/javascript" >
  7. // 扩展API加载完毕后调用onPlusReady回调函数
  8. document.addEventListener('plusready', onPlusReady, false);
  9. // 扩展API加载完毕,现在可以正常调用扩展API
  10. function onPlusReady(){
  11. }
  12. // 搜索iBeacon设备
  13. function startBeaconDiscovery(){
  14. plus.ibeacon.startBeaconDiscovery({
  15. success: function(){
  16. plus.nativeUI.alert('start success');
  17. },
  18. failed: function(e){
  19. plus.nativeUI.alert('start error: '+JSON.stringify(e));
  20. }
  21. });
  22. }
  23. // 停止搜索iBeacon设备
  24. function stopBeaconDiscovery(){
  25. plus.ibeacon.stopBeaconDiscovery({
  26. success: function(){
  27. plus.nativeUI.alert('stop success');
  28. },
  29. failed: function(e){
  30. plus.nativeUI.alert('stop error: '+JSON.stringify(e));
  31. }
  32. });
  33. }
  34. </script>
  35. </head>
  36. <body >
  37. <button onclick="startBeaconDiscovery()">开始搜索</button>
  38. <br/>
  39. <button onclick="stopBeaconDiscovery()">停止搜索</button>
  40. </body>
  41. </html>

uni-app使用plus注意事项

getBeacons

获取已搜索到的iBeacon设备


void plus.ibeacon.getBeacons(options);
                

说明:

获取成功后触发successCB回调,失败触发errorCB回调。

参数:

options参数为json类型,包含以下属性:

  • success: (IBeaconSuccessCallback)可选 获取设备成功回调函数回调函数参数event对象包括以下属性:beacons - Array类型,iBeacon设备列表信息。
  • fail: (IBeaconFailCallback)可选 获取设备失败回调函数
  • complete: (IBeaconCompleteCallback)可选 获取设备操作完成回调函数调用成功或失败都会触发此回调。

返回值:

void: 无

示例:


<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <title>iBeacon Example</title>
    <script type="text/javascript" >
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener('plusready', onPlusReady, false);
// 扩展API加载完毕,现在可以正常调用扩展API
function onPlusReady(){

}
// 获取iBeacon设备
function getBeacons(){
    plus.ibeacon.startBeaconDiscovery({
        success: function(){
            plus.ibeacon.getBeacons({
                success: function(e){
                    var beacons = e.beacons;
                    var uuids = null;
                    for(var i in beacons){
                        if(uuids){
                            uuids += ', '+beacons[i].uuid;
                        }else{
                            uuids = beacons[i].uuid;
                        }
                    }
                    plus.nativeUI.alert('Beacons: '+uuids);
                },
                failed: function(e){
                    plus.nativeUI.alert('getBeacons error: '+JSON.stringify(e));
                }
            });
        },
        failed: function(e){
            plus.nativeUI.alert('start error: '+JSON.stringify(e));
        }
    });
}
    </script>
    </head>
    <body >
        <button onclick="getBeacons()">获取iBeacon设备</button>
    </body>
</html>
                

uni-app使用plus注意事项

onBeaconUpdate

监听iBeacon设备更新


void plus.ibeacon.onBeaconUpdate(updateCB);
                

说明:

iBeacon设备更新后触发updateCB回调。

参数:

  • updateCB: (IBeaconUpdateCallback)必选 更新iBeacon设备回调函数回调函数参数event对象包括以下属性:beacons - Array类型,iBeacon设备列表信息。

返回值:

void: 无

示例:


<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <title>iBeacon Example</title>
    <script type="text/javascript" >
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener('plusready', onPlusReady, false);
// 扩展API加载完毕,现在可以正常调用扩展API
function onPlusReady(){

}
// 监听iBeacon设备更新
function listenerBeacons(){
    plus.ibeacon.startBeaconDiscovery({
        success:function(){
            plus.ibeacon.onBeaconUpdate(function(e){
                var beacons = e.beacons;
                var uuids = null;
                for(var i in beacons){
                    if(uuids){
                        uuids += ', '+beacons[i].uuid;
                    }else{
                        uuids = beacons[i].uuid;
                    }
                }
                plus.nativeUI.alert('Beacons updated: '+uuids);
            });
        },
        failed: function(e){
            plus.nativeUI.alert('start error: '+JSON.stringify(e));
        }
    });
}
    </script>
    </head>
    <body >
        <button onclick="listenerBeacons()">监听iBeacon设备更新</button>
    </body>
</html>
                

uni-app使用plus注意事项

onBeaconServiceChange

监听iBeacon服务状态变化


void plus.ibeacon.onBeaconServiceChange(changeCB);
                

说明:

iBeacon服务状态变化时触发changeCB回调。

参数:

  • changeCB: _(IBeaconServiceChangeCallback)必选 _iBeacon服务状态变化回调函数回调函数参数event对象包括以下属性:available - Boolean类型,iBeacon服务目前是否可用;discovering - Boolean类型,是否处于搜索iBeacon设备状态。

返回值:

void: 无

示例:


<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <title>iBeacon Example</title>
    <script type="text/javascript" >
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener('plusready', onPlusReady, false);
// 扩展API加载完毕,现在可以正常调用扩展API
function onPlusReady(){
    // 监听iBeacons服务状态变化
    plus.ibeacon.onBeaconServiceChange(function(e){
        console.log('BeaconServiceChanged: available='+e.available+', discovering='+e.discovering);
    });
}
// 搜索iBeacon设备
function startBeaconDiscovery(){
    plus.ibeacon.startBeaconDiscovery({
        success: function(){
            console.log('start success');
        },
        failed: function(e){
            console.log('start error: '+JSON.stringify(e));
        }
    });
}
// 停止搜索iBeacon设备
function stopBeaconDiscovery(){
    plus.ibeacon.stopBeaconDiscovery({
        success: function(){
            console.log('stop success');
        },
        failed: function(e){
            console.log('stop error: '+JSON.stringify(e));
        }
    });
}
    </script>
    </head>
    <body >
        <button onclick="startBeaconDiscovery()">开始搜索</button>
        <br/>
        <button onclick="stopBeaconDiscovery()">停止搜索</button>
    </body>
</html>
                

uni-app使用plus注意事项

IBeaconInfo

iBeacon设备信息


interface IBeaconInfo {
    readonly attribute String uuid;
    readonly attribute String major;
    readonly attribute String minor;
    readonly attribute Number proximity;
    readonly attribute Number accuracy;
    readonly attribute Number rssi;
}            
                

属性:

  • uuid: _(String类型)_iBeacon设备广播的uuid
  • major: _(String类型)_iBeacon设备的主id
  • minor: _(String类型)_iBeacon设备的次id
  • proximity: _(Number类型)_iBeacon设备的距离
  • accuracy: _(Number类型)_iBeacon设备的距离精度信息
  • rssi: _(String类型)_iBeacon设备的信号强度

IBeaconSuccessCallback

成功回调函数


void onSuccess(event){
}
                

说明:

不同接口触发的成功回调参数event包含的属性存在差异,具体参考对应的接口描述说明。

参数:

  • event: (json)必选 回调参数回调参数包含的属性由调用接口决定,具体参考对应的接口描述说明。

返回值:

void: 无

IBeaconFailCallback

失败回调函数


function void onFail(DOMException error){
    // Handle error
    var code = error.code; // 错误编码
    var message = error.message; // 错误描述信息
}
                

参数:

  • error: (DOMException)必选 回调参数,错误信息可通过error.code(Number类型)获取错误编码;可通过error.message(String类型)获取错误描述信息。

返回值:

void: 无

IBeaconCompleteCallback

操作完成回调函数


function void onComplete(event){
}
                

说明:

调用成功或失败都会触发此回调。

参数:

  • event: (json)可选 回调参数调用成功时回调参数与IBeaconSuccessCallback一致,调用失败时回调参数与IBeaconFailCallback一致。

返回值:

void: 无

IBeaconUpdateCallback

获取iBeacon设备信息回调函数


void onSuccess(event){
    // 通过beacons获取iBeacon设备列表信息
    var beacons = event.beacons;
}
                

参数:

  • event: (JSON)必选 设备信息可通过event.beacons(Array类型)获取iBeacon设备列表信息。

返回值:

void: 无

IBeaconServiceChangeCallback

iBeacon服务状态变化回调函数


void onSuccess(event){
    // 通过available、discovering获取iBeacon服务状态
    var available = event.available;
    var discovering = event.discovering;
}
                

参数:

  • event: _(JSON)必选 _iBeacon服务状态信息可通过event.available(Boolean类型)获取iBeacon服务目前是否可用;可通过event.discovering(Boolean类型)获取是否处于搜索iBeacon设备状态。

返回值:

void: 无