HTML5+ibeacon

HTML5+ibeacon

ibeacon常见问题我要提意见

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

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

方法:

对象:

回调方法:

权限:

5+功能模块(permissions)


{
// ...
"permissions":{
	// ...
	"iBeacon": {
		"description": "iBeacon"
	}
}
}
			

startBeaconDiscovery

开始搜索附近的iBeacon设备


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 : 无

示例:


<!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 startBeaconDiscovery(){
	plus.ibeacon.startBeaconDiscovery({
		success;function(){
			plus.nativeUI.alert('start success');
		},
		fail:function(e){
			plus.nativeUI.alert('start error: '+JSON.stringify(e));
		}
	});
}
	</script>
	</head>
	<body >
		<button onclick="startBeaconDiscovery()">开始搜索</button>
	</body>
</html>
				

uni-app使用plus注意事项

stopBeaconDiscovery

停止搜索附近的iBeacon设备


void plus.ibeacon.stopBeaconDiscovery(options);
				

说明:

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

参数:

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

返回值:

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 startBeaconDiscovery(){
	plus.ibeacon.startBeaconDiscovery({
		success: function(){
			plus.nativeUI.alert('start success');
		},
		failed: function(e){
			plus.nativeUI.alert('start error: '+JSON.stringify(e));
		}
	});
}
// 停止搜索iBeacon设备
function stopBeaconDiscovery(){
	plus.ibeacon.stopBeaconDiscovery({
		success: function(){
			plus.nativeUI.alert('stop success');
		},
		failed: function(e){
			plus.nativeUI.alert('stop error: '+JSON.stringify(e));
		}
	});
}
	</script>
	</head>
	<body >
		<button onclick="startBeaconDiscovery()">开始搜索</button>
		<br/>
		<button onclick="stopBeaconDiscovery()">停止搜索</button>
	</body>
</html>
				

uni-app使用plus注意事项

getBeacons

获取已搜索到的iBeacon设备


void plus.ibeacon.getBeacons(options);
				

说明:

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

参数:

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

  • success: ( IBeaconSuccessCallback ) 可选 获取设备成功回调函数 回调函数参数event对象包括以下属性: beacons – Array<IBeaconInfo>类型,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<IBeaconInfo>类型,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: ( Object ) 必选 回调参数 回调参数包含的属性由调用接口决定,具体参考对应的接口描述说明。

返回值:

void : 无

IBeaconFailCallback

失败回调函数


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

参数:

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

返回值:

void : 无

IBeaconCompleteCallback

操作完成回调函数


function void onComplete(event){
}
				

说明:

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

参数:

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

返回值:

void : 无

IBeaconUpdateCallback

获取iBeacon设备信息回调函数


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

参数:

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

返回值:

void : 无

IBeaconServiceChangeCallback

iBeacon服务状态变化回调函数


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

参数:

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

返回值:

void : 无