ibeacon常见问题我要提意见

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

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

方法:

对象:

回调方法:

权限:

5+功能模块(permissions)


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

startBeaconDiscovery

开始搜索附近的iBeacon设备


void plus.ibeacon.startBeaconDiscovery(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');
		},
		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类型,包含以下属性:

返回值:

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回调。

参数:

返回值:

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回调。

参数:

返回值:

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;
}			
				

属性:

IBeaconSuccessCallback

成功回调函数


void onSuccess(event){
}
				

说明:

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

参数:

返回值:

void : 无

IBeaconFailCallback

失败回调函数


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

参数:

返回值:

void : 无

IBeaconCompleteCallback

操作完成回调函数


function void onComplete(event){
}
				

说明:

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

参数:

返回值:

void : 无

IBeaconUpdateCallback

获取iBeacon设备信息回调函数


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

参数:

返回值:

void : 无

IBeaconServiceChangeCallback

iBeacon服务状态变化回调函数


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

参数:

返回值:

void : 无