ibeacon常见问题我要提意见
iBeacon模块用于搜索附件的iBeacon设备。
HBuilderX1.1.0及以上版本支持此功能。
方法:
- startBeaconDiscovery: 开始搜索附近的iBeacon设备
 - stopBeaconDiscovery: 停止搜索附近的iBeacon设备
 - getBeacons: 获取已搜索到的iBeacon设备
 - onBeaconUpdate: 监听iBeacon设备更新
 - onBeaconServiceChange: 监听iBeacon服务状态变化
 
对象:
- IBeaconInfo: iBeacon设备信息
 
回调方法:
- IBeaconSuccessCallback: 成功回调函数
 - IBeaconFailCallback: 失败回调函数
 - IBeaconCompleteCallback: 操作完成回调函数
 - IBeaconUpdateCallback: 获取iBeacon设备信息回调函数
 - IBeaconServiceChangeCallback: iBeacon服务状态变化回调函数
 
权限:
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>
				
stopBeaconDiscovery
停止搜索附近的iBeacon设备
void plus.ibeacon.stopBeaconDiscovery(options);
				
说明:
取消成功后触发successCB回调,失败触发errorCB回调。
参数:
options参数为json类型,包含以下属性:
- 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');
		},
		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>
				
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>
				
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>
				
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>
				
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 : 无