敬告:此 demo 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,威尼斯人888-5845vip威尼斯电子游戏。
♦ js-sdk 引用方式:
♦ 普通网页 script 方式加载:下载最新版 ,请在页面上调用 jsbridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge
♦ 要求 iphone 4s / ios6.0 以上,android 4.3 以上;
♦ 需硬件支持 蓝牙 4.0,即 ble(bluetoothlowenergy);
jsbridge.ble.getstate(function(state) {
alert(state);
});
/**
state 整数类型
1: poweredon 设备开启状态 -- 可用状态
2: poweredoff 设备关闭状态
3: resetting 正在重置状态
4: unauthorized 设备未授权状态
5: unknown 初始的时候是未知的
6: unsupported 设备不支持
**/
//请在调用其他接口之前请求蓝牙权限
//获得权限之后再调用业务接口,否则可能出现闪退现象
jsbridge.ble.requestpermission(function(granted) {
alert(granted ? "已授权" : "未授权");
});
//当蓝牙功能停用时,请求启用蓝牙
jsbridge.ble.requestenable(function(succ) {
if (!succ) {
alert("失败");
}
});
//需预先开启蓝牙功能,不然获取不到。
jsbridge.ble.getbondeddevices(function(data) {
showdata(data);
});
jsbridge.ble.getname(function(name) {
alert(name);
});
waiting();
jsbridge.ble.getperipheral(function(data) {
showdata(data);
});
/**
data 为 json 数组
[
{
uuid: "", //字符串,设备 uuid(mac 地址)
name: "", //字符串,设备名称
rssi: -50 //数字,信号强度
},
...
]
**/
jsbridge.ble.isscanning(function(yes) {
alert(yes);
});
/**
yes 布尔类型,是否正在扫描中
**/
jsbridge.ble.isconnected({
uuid: "e4:19:c1:bc:0b:60" //必须,字符串类型,目标设备的 uuid(mac 地址)
}, function(yes) {
alert(yes);
});
/**
yes 布尔类型,是否已连接
**/
• 系统会不断的扫描更新附近的蓝牙4.0设备信息,反复通过回调函数通知您,也可以调用 getperipheral 接口获取搜索到的设备;
• 调用此接口会先清空已经搜索到的设备;
• 最长连续扫描30秒钟会自动停止,调用 stopscan 手动停止扫描;
• 搜索到需要的设备后应尽快停止扫描,以降低电量消耗;
waiting();
jsbridge.ble.scan(function(succ, data) {
showdata({
succ: succ,
data: data
});
});
/**
data 为 json 数组
[
{
uuid: "", //字符串,设备 uuid(mac 地址)
name: "", //字符串,设备名称
rssi: -50 //数字,信号强度
},
...
]
**/
jsbridge.ble.stopscan(function(yes) {
alert(yes);
});
/**
yes 布尔类型,是否已停止
**/
jsbridge.ble.connect({
uuid: "e4:19:c1:bc:0b:60" //必须,字符串,目标设备的 uuid(mac 地址)
}, function(succ, err) {
if (succ) {
alert("连接成功");
} else {
alert(err);
}
});
jsbridge.ble.disconnect({
uuid: "e4:19:c1:bc:0b:60" //必须,字符串,目标设备的 uuid(mac 地址)
}, function(succ, err) {
if (succ) {
alert("断开成功");
} else {
alert(err);
}
});
waiting();
jsbridge.ble.discoverservices({
//必须,字符串,设备的 uuid(mac 地址)
uuid: "e4:19:c1:bc:0b:60"
}, function(succ, data) {
showdata({
succ: succ,
data: data
});
});
/**
data 为 json 字符串数组类型,返回此设备所有服务的 uuid (serviceuuid) 集
[
"", //字符串,服务 uuid (serviceuuid)
...
]
**/
waiting();
jsbridge.ble.discovercharacteristics({
//必须,字符串,设备的 uuid(mac 地址)
uuid : "e4:19:c1:bc:0b:60",
//必须,字符串,服务 uuid,调用 discoverservices 可获取
serviceuuid: "00001800-0000-1000-8000-00805f9b34fb"
}, function(succ, data) {
showdata({
succ: succ,
data: data
});
});
/**
data 为 json 数组类型,返回所有特征集
[
{
uuid : '', //字符串,设备 uuid(mac 地址)
serviceuuid : '', //字符串,服务的 uuid
characteristicuuid: '', //字符串,特征的 uuid
permissions : '', //字符串,特征的权限,可能值:
//readable
//writeable
//readencryptionrequired
//writeencryptionrequired
//其他(数字代码串)
properties : '', //字符串,特征的属性,可能值:
//broadcast
//read
//writewithoutresponse
//write
//notify
//indicate
//authenticatedsignedwrites
//extendedproperties
//notifyencryptionrequired
//indicateencryptionrequired
//其他(数字代码串)
value : '' //字符串,hex 16进制值字符串(请自行转换为 byte 流)
},
...
]
**/
waiting();
jsbridge.ble.discoverdescriptors({
//必须,字符串,设备的 uuid(mac 地址)
uuid : "e4:19:c1:bc:0b:60",
//必须,字符串,服务 uuid,调用 discoverservices 可获取
serviceuuid: "00001800-0000-1000-8000-00805f9b34fb",
//必须,字符串,特征 uuid,调用 discovercharacteristics 可获取
characteristicuuid: "00002a00-0000-1000-8000-00805f9b34fb"
}, function(succ, data) {
showdata({
succ: succ,
data: data
});
});
/**
data 为 json 数组类型,返回所有描述符集
[
{
uuid : '', //字符串,设备 uuid(mac 地址)
serviceuuid : '', //字符串,服务的 uuid
characteristicuuid: '', //字符串,特征的 uuid
descriptoruuid : '', //字符串,特征的 uuid
value : '', //字符串,hex 16进制值字符串(请自行转换为 byte 流)
},
...
]
**/
• 每有数据回发都会触发回调函数;
• 调用 disconnect 断开连接则自动停止监听;
waiting();
jsbridge.ble.setnotify({
//必须,字符串,设备的 uuid(mac 地址)
uuid : "e4:19:c1:bc:0b:60",
//必须,字符串,服务 uuid,调用 discoverservices 可获取
serviceuuid: "00001800-0000-1000-8000-00805f9b34fb",
//必须,字符串,特征 uuid,调用 discovercharacteristics 可获取
characteristicuuid: "00002a00-0000-1000-8000-00805f9b34fb"
}, function(succ, data) {
showdata({
succ: succ,
data: data
});
});
/**
data 为 json 对象,请参考 discovercharacteristics 返回的 data 类型说明
**/
• 每有数据回发都会触发回调函数;
waiting();
jsbridge.ble.read({
//必须,字符串,设备的 uuid(mac 地址)
uuid : "e4:19:c1:bc:0b:60",
//必须,字符串,服务 uuid,调用 discoverservices 可获取
serviceuuid: "00001800-0000-1000-8000-00805f9b34fb",
//必须,字符串,特征 uuid,调用 discovercharacteristics 可获取
characteristicuuid: "00002a00-0000-1000-8000-00805f9b34fb",
//可选,字符串,可指定描述符 uuid,如果提供了则读取 descriptor,否则读取 characteristic
descriptoruuid : ""
}, function(succ, data) {
showdata({
succ: succ,
data: data
});
});
/**
data 为 json 对象:
读取 characteristic 请参考 discovercharacteristics 返回的 data 类型说明
读取 descriptor 请参考 discoverdescriptors 返回的 data 类型说明
**/
• 每有数据回发都会触发回调函数;
waiting();
jsbridge.ble.write({
//必须,字符串,设备的 uuid(mac 地址)
uuid : "e4:19:c1:bc:0b:60",
//必须,字符串,服务 uuid,调用 discoverservices 可获取
serviceuuid: "00001800-0000-1000-8000-00805f9b34fb",
//必须,字符串,特征 uuid,调用 discovercharacteristics 可获取
characteristicuuid: "00002a00-0000-1000-8000-00805f9b34fb",
//可选,字符串,可指定描述符 uuid,如果提供了则写入 descriptor,否则写入 characteristic
descriptoruuid : "",
//必须,请将需要写入的 byte 流转换为 hex 16进制串
value : "48656c6c6f20776f726c64"
}, function(succ, data) {
showdata({
succ: succ,
data: data
});
});
/**
data 为 json 对象:
写入 characteristic 请参考 discovercharacteristics 返回的 data 类型说明
写入 descriptor 请参考 discoverdescriptors 返回的 data 类型说明
**/
sample services 0000180d-0000-1000-8000-00805f9b34fb heart rate service 0000180a-0000-1000-8000-00805f9b34fb device information service sample characteristics 00002a37-0000-1000-8000-00805f9b34fb heart rate measurement 00002a29-0000-1000-8000-00805f9b34fb manufacturer name string gatt services 00001800-0000-1000-8000-00805f9b34fb genericaccess 00001801-0000-1000-8000-00805f9b34fb genericattribute gatt declarations 00002800-0000-1000-8000-00805f9b34fb primary service 00002801-0000-1000-8000-00805f9b34fb secondary service 00002802-0000-1000-8000-00805f9b34fb include 00002803-0000-1000-8000-00805f9b34fb characteristic gatt descriptors 00002900-0000-1000-8000-00805f9b34fb characteristic extended properties 00002901-0000-1000-8000-00805f9b34fb characteristic user description 00002902-0000-1000-8000-00805f9b34fb client characteristic configuration 00002903-0000-1000-8000-00805f9b34fb server characteristic configuration 00002904-0000-1000-8000-00805f9b34fb characteristic presentation format 00002905-0000-1000-8000-00805f9b34fb characteristic aggregate format 00002906-0000-1000-8000-00805f9b34fb valid range 00002907-0000-1000-8000-00805f9b34fb external report reference descriptor 00002908-0000-1000-8000-00805f9b34fb report reference descriptor gatt characteristics 00002a00-0000-1000-8000-00805f9b34fb device name 00002a01-0000-1000-8000-00805f9b34fb appearance 00002a02-0000-1000-8000-00805f9b34fb peripheral privacy flag 00002a03-0000-1000-8000-00805f9b34fb reconnection address 00002a04-0000-1000-8000-00805f9b34fb ppcp 00002a05-0000-1000-8000-00805f9b34fb service changed gatt service uuids 00001802-0000-1000-8000-00805f9b34fb immediate alert 00001803-0000-1000-8000-00805f9b34fb link loss 00001804-0000-1000-8000-00805f9b34fb tx power 00001805-0000-1000-8000-00805f9b34fb current time service 00001806-0000-1000-8000-00805f9b34fb reference time update service 00001807-0000-1000-8000-00805f9b34fb next dst change service 00001808-0000-1000-8000-00805f9b34fb glucose 00001809-0000-1000-8000-00805f9b34fb health thermometer 0000180a-0000-1000-8000-00805f9b34fb device information 0000180b-0000-1000-8000-00805f9b34fb network availability 0000180d-0000-1000-8000-00805f9b34fb heart rate 0000180e-0000-1000-8000-00805f9b34fb phone alert status service 0000180f-0000-1000-8000-00805f9b34fb battery service 00001810-0000-1000-8000-00805f9b34fb blood pressure 00001811-0000-1000-8000-00805f9b34fb alert notification service 00001812-0000-1000-8000-00805f9b34fb human interface device 00001813-0000-1000-8000-00805f9b34fb scan parameters 00001814-0000-1000-8000-00805f9b34fb running speed and cadence 00001816-0000-1000-8000-00805f9b34fb cycling speed and cadence 00001818-0000-1000-8000-00805f9b34fb cycling power 00001819-0000-1000-8000-00805f9b34fb location and navigation gatt characteristic uuids 00002a06-0000-1000-8000-00805f9b34fb alert level 00002a07-0000-1000-8000-00805f9b34fb tx power level 00002a08-0000-1000-8000-00805f9b34fb date time 00002a09-0000-1000-8000-00805f9b34fb day of week 00002a0a-0000-1000-8000-00805f9b34fb day date time 00002a0c-0000-1000-8000-00805f9b34fb exact time 256 00002a0d-0000-1000-8000-00805f9b34fb dst offset 00002a0e-0000-1000-8000-00805f9b34fb time zone 00002a0f-0000-1000-8000-00805f9b34fb local time information 00002a11-0000-1000-8000-00805f9b34fb time with dst 00002a12-0000-1000-8000-00805f9b34fb time accuracy 00002a13-0000-1000-8000-00805f9b34fb time source 00002a14-0000-1000-8000-00805f9b34fb reference time information 00002a16-0000-1000-8000-00805f9b34fb time update control point 00002a17-0000-1000-8000-00805f9b34fb time update state 00002a18-0000-1000-8000-00805f9b34fb glucose measurement 00002a19-0000-1000-8000-00805f9b34fb battery level 00002a1c-0000-1000-8000-00805f9b34fb temperature measurement 00002a1d-0000-1000-8000-00805f9b34fb temperature type 00002a1e-0000-1000-8000-00805f9b34fb intermediate temperature 00002a21-0000-1000-8000-00805f9b34fb measurement interval 00002a22-0000-1000-8000-00805f9b34fb boot keyboard input report 00002a23-0000-1000-8000-00805f9b34fb system id 00002a24-0000-1000-8000-00805f9b34fb model number string 00002a25-0000-1000-8000-00805f9b34fb serial number string 00002a26-0000-1000-8000-00805f9b34fb firmware revision string 00002a27-0000-1000-8000-00805f9b34fb hardware revision string 00002a28-0000-1000-8000-00805f9b34fb software revision string 00002a29-0000-1000-8000-00805f9b34fb manufacturer name string 00002a2a-0000-1000-8000-00805f9b34fb ieee 11073-20601 regulatory certification data list 00002a2b-0000-1000-8000-00805f9b34fb current time 00002a31-0000-1000-8000-00805f9b34fb scan refresh 00002a32-0000-1000-8000-00805f9b34fb boot keyboard output report 00002a33-0000-1000-8000-00805f9b34fb boot mouse input report 00002a34-0000-1000-8000-00805f9b34fb glucose measurement context 00002a35-0000-1000-8000-00805f9b34fb blood pressure measurement 00002a36-0000-1000-8000-00805f9b34fb intermediate cuff pressure 00002a37-0000-1000-8000-00805f9b34fb heart rate measurement 00002a38-0000-1000-8000-00805f9b34fb body sensor location 00002a39-0000-1000-8000-00805f9b34fb heart rate control point 00002a3e-0000-1000-8000-00805f9b34fb network availability 00002a3f-0000-1000-8000-00805f9b34fb alert status 00002a40-0000-1000-8000-00805f9b34fb ringer control point 00002a41-0000-1000-8000-00805f9b34fb ringer setting 00002a42-0000-1000-8000-00805f9b34fb alert category id bit mask 00002a43-0000-1000-8000-00805f9b34fb alert category id 00002a44-0000-1000-8000-00805f9b34fb alert notification control point 00002a45-0000-1000-8000-00805f9b34fb unread alert status 00002a46-0000-1000-8000-00805f9b34fb new alert 00002a47-0000-1000-8000-00805f9b34fb supported new alert category 00002a48-0000-1000-8000-00805f9b34fb supported unread alert category 00002a49-0000-1000-8000-00805f9b34fb blood pressure feature 00002a4a-0000-1000-8000-00805f9b34fb hid information 00002a4b-0000-1000-8000-00805f9b34fb report map 00002a4c-0000-1000-8000-00805f9b34fb hid control point 00002a4d-0000-1000-8000-00805f9b34fb report 00002a4e-0000-1000-8000-00805f9b34fb protocol mode 00002a4f-0000-1000-8000-00805f9b34fb scan interval window 00002a50-0000-1000-8000-00805f9b34fb pnp id 00002a51-0000-1000-8000-00805f9b34fb glucose feature 00002a52-0000-1000-8000-00805f9b34fb record access control point 00002a53-0000-1000-8000-00805f9b34fb rsc measurement 00002a54-0000-1000-8000-00805f9b34fb rsc feature 00002a55-0000-1000-8000-00805f9b34fb sc control point 00002a5b-0000-1000-8000-00805f9b34fb csc measurement 00002a5c-0000-1000-8000-00805f9b34fb csc feature 00002a5d-0000-1000-8000-00805f9b34fb sensor location 00002a63-0000-1000-8000-00805f9b34fb cycling power measurement 00002a64-0000-1000-8000-00805f9b34fb cycling power vector 00002a65-0000-1000-8000-00805f9b34fb cycling power feature 00002a66-0000-1000-8000-00805f9b34fb cycling power control point 00002a67-0000-1000-8000-00805f9b34fb location and speed 00002a68-0000-1000-8000-00805f9b34fb navigation 00002a69-0000-1000-8000-00805f9b34fb position quality 00002a6a-0000-1000-8000-00805f9b34fb ln feature 00002a6b-0000-1000-8000-00805f9b34fb ln control point
这里只列出了一部分,更多请参考 。
result: