一门APP开发教程

标题: 一门app蓝牙功能js调用语法说明 [打印本页]

作者: 曾清    时间: 2020-2-14 14:03
标题: 一门app蓝牙功能js调用语法说明
一门app蓝牙功能js调用语法说明
♦ 要求 iPhone 4s / iOS6.0 以上,Android 4.3 以上;
♦ 需硬件支持 蓝牙 4.0,即 BLE(BluetoothLowEnergy);

demo地址:https://www.yimenapp.com/doc/demo_ble.cshtml
具体调用参数
1,getState 获取蓝牙设备状态
  1. jsBridge.ble.getState(function(state) {
  2.   alert(state);
  3. });
  4. /**
  5. state 整数类型
  6. 1: poweredOn 设备开启状态 -- 可用状态
  7. 2: poweredOff 设备关闭状态
  8. 3: resetting 正在重置状态
  9. 4: unauthorized 设备未授权状态
  10. 5: unknown 初始的时候是未知的
  11. 6: unsupported 设备不支持
  12. **/
复制代码


2.getPeripheral 获取当前扫描到的所有设备信息
  1. waiting();
  2. jsBridge.ble.getPeripheral(function(data) {
  3.   showData(data);
  4. });
  5. /**
  6. data 为 json 数组
  7. [
  8.   {
  9.     uuid: "",  //字符串,设备 uuid(MAC 地址)
  10.     name: "",  //字符串,设备名称
  11.     rssi: -50  //数字,信号强度
  12.   },
  13.   ...
  14. ]
  15. **/
复制代码


3.isScanning 判断是否正在扫描中
  1. jsBridge.ble.isScanning(function(yes) {
  2.   alert(yes);
  3. });
  4. /**
  5. yes 布尔类型,是否正在扫描中
  6. **/
复制代码


4.isConnected 判断与指定设备是否处于已连接状态
  1. jsBridge.ble.isConnected({
  2.   uuid: "E4:19:C1:BC:0B:60"  //必须,字符串类型,目标设备的 uuid(MAC 地址)
  3. }, function(yes) {
  4.   alert(yes);
  5. });
  6. /**
  7. yes 布尔类型,是否已连接
  8. **/
复制代码


5.scan 开始扫描搜索附近的蓝牙4.0设备
• 系统会不断的扫描更新附近的蓝牙4.0设备信息,反复通过回调函数通知您,也可以调用 getPeripheral 接口获取搜索到的设备;
• 调用此接口会先清空已经搜索到的设备;
• 调用 stopScan 接口停止扫描搜索;
• 搜索到需要的设备后应尽快停止扫描,以降低电量消耗;
  1. waiting();
  2. jsBridge.ble.scan(function(succ, data) {
  3.   showData({
  4.     succ: succ,
  5.     data: data
  6.   });
  7. });
  8. /**
  9. data 为 json 数组
  10. [
  11.   {
  12.     uuid: "",  //字符串,设备 uuid(MAC 地址)
  13.     name: "",  //字符串,设备名称
  14.     rssi: -50  //数字,信号强度
  15.   },
  16.   ...
  17. ]
  18. **/
复制代码

6.stopScan 停止扫描搜索附近设备
  1. jsBridge.ble.stopScan(function(yes) {
  2.   alert(yes);
  3. });
  4. /**
  5. yes 布尔类型,是否已停止
  6. **/
复制代码

7.connect 连接指定设备
  1. jsBridge.ble.connect({
  2.   uuid: "E4:19:C1:BC:0B:60"  //必须,字符串,目标设备的 uuid(MAC 地址)
  3. }, function(succ, err) {
  4.   if (succ) {
  5.     alert("连接成功");
  6.   } else {
  7.     alert(err);
  8.   }
  9. });
复制代码

8.disconnect 断开与指定设备的连接
  1. jsBridge.ble.disconnect({
  2.   uuid: "E4:19:C1:BC:0B:60"  //必须,字符串,目标设备的 uuid(MAC 地址)
  3. }, function(succ, err) {
  4.   if (succ) {
  5.     alert("断开成功");
  6.   } else {
  7.     alert(err);
  8.   }
  9. });
复制代码

9.discoverServices 获取指定设备的所有服务
  1. waiting();
  2. jsBridge.ble.discoverServices({
  3.   //必须,字符串,设备的 uuid(MAC 地址)
  4.   uuid: "E4:19:C1:BC:0B:60"
  5. }, function(succ, data) {
  6.   showData({
  7.     succ: succ,
  8.     data: data
  9.   });
  10. });
  11. /**
  12. data 为 json 字符串数组类型,返回此设备所有服务的 UUID (serviceUUID) 集
  13. [
  14.   "",  //字符串,服务 UUID (serviceUUID)
  15.   ...
  16. ]
  17. **/
复制代码

10.discoverCharacteristics 获取指定设备服务的所有特征(Characteristic)
  1. waiting();
  2. jsBridge.ble.discoverCharacteristics({
  3.   //必须,字符串,设备的 uuid(MAC 地址)
  4.   uuid       : "E4:19:C1:BC:0B:60",
  5.   //必须,字符串,服务 uuid,调用 discoverServices 可获取
  6.   serviceUUID: "00001800-0000-1000-8000-00805f9b34fb"
  7. }, function(succ, data) {
  8.   showData({
  9.     succ: succ,
  10.     data: data
  11.   });
  12. });
  13. /**
  14. data 为 json 数组类型,返回所有特征集
  15. [
  16.   {
  17.     uuid              : '', //字符串,设备 uuid(MAC 地址)
  18.     serviceUUID       : '', //字符串,服务的 UUID
  19.     characteristicUUID: '', //字符串,特征的 UUID
  20.     permissions       : '', //字符串,特征的权限,可能值:
  21.                         //readable
  22.                         //writeable
  23.                         //readEncryptionRequired
  24.                         //writeEncryptionRequired
  25.                         //其他(数字代码串)
  26.     properties         : '', //字符串,特征的属性,可能值:
  27.                         //broadcast
  28.                         //read
  29.                         //writeWithoutResponse
  30.                         //write
  31.                         //notify
  32.                         //indicate
  33.                         //authenticatedSignedWrites
  34.                         //extendedProperties
  35.                         //notifyEncryptionRequired
  36.                         //indicateEncryptionRequired
  37.                         //其他(数字代码串)
  38.     value              : '' //字符串,Hex 16进制值字符串(请自行转换为 byte 流)
  39.   },
  40.   ...
  41. ]
  42. **/
复制代码

11.discoverDescriptors 获取指定设备特征的所有描述符(Descriptor)

  1. waiting();
  2. jsBridge.ble.discoverDescriptors({
  3.   //必须,字符串,设备的 uuid(MAC 地址)
  4.   uuid       : "E4:19:C1:BC:0B:60",
  5.   //必须,字符串,服务 uuid,调用 discoverServices 可获取
  6.   serviceUUID: "00001800-0000-1000-8000-00805f9b34fb",
  7.   //必须,字符串,特征 uuid,调用 discoverCharacteristics 可获取
  8.   characteristicUUID: "00002a00-0000-1000-8000-00805f9b34fb"
  9. }, function(succ, data) {
  10.   showData({
  11.     succ: succ,
  12.     data: data
  13.   });
  14. });
  15. /**
  16. data 为 json 数组类型,返回所有描述符集
  17. [
  18.   {
  19.     uuid              : '', //字符串,设备 uuid(MAC 地址)
  20.     serviceUUID       : '', //字符串,服务的 UUID
  21.     characteristicUUID: '', //字符串,特征的 UUID
  22.     descriptorUUID    : '', //字符串,特征的 UUID
  23.     value             : '', //字符串,Hex 16进制值字符串(请自行转换为 byte 流)
  24.   },
  25.   ...
  26. ]
  27. **/
复制代码


12.setNotify 监听指定设备特征的数据回发
• 每有数据回发都会触发回调函数;
• 调用 disconnect 断开连接则自动停止监听;
  1. waiting();
  2. jsBridge.ble.setNotify({
  3.   //必须,字符串,设备的 uuid(MAC 地址)
  4.   uuid       : "E4:19:C1:BC:0B:60",
  5.   //必须,字符串,服务 uuid,调用 discoverServices 可获取
  6.   serviceUUID: "00001800-0000-1000-8000-00805f9b34fb",
  7.   //必须,字符串,特征 uuid,调用 discoverCharacteristics 可获取
  8.   characteristicUUID: "00002a00-0000-1000-8000-00805f9b34fb"
  9. }, function(succ, data) {
  10.   showData({
  11.     succ: succ,
  12.     data: data
  13.   });
  14. });
  15. /**
  16. data 为 json 对象,请参考 discoverCharacteristics 返回的 data 类型说明
  17. **/
复制代码


13.read 从设备上读取数据
• 每有数据回发都会触发回调函数;
  1. waiting();
  2. jsBridge.ble.read({
  3.   //必须,字符串,设备的 uuid(MAC 地址)
  4.   uuid       : "E4:19:C1:BC:0B:60",
  5.   //必须,字符串,服务 uuid,调用 discoverServices 可获取
  6.   serviceUUID: "00001800-0000-1000-8000-00805f9b34fb",
  7.   //必须,字符串,特征 uuid,调用 discoverCharacteristics 可获取
  8.   characteristicUUID: "00002a00-0000-1000-8000-00805f9b34fb",
  9.   //可选,字符串,可指定描述符 uuid,如果提供了则读取 descriptor,否则读取 characteristic
  10.   descriptorUUID    : ""
  11. }, function(succ, data) {
  12.   showData({
  13.     succ: succ,
  14.     data: data
  15.   });
  16. });
  17. /**
  18. data 为 json 对象:
  19.   读取 characteristic 请参考 discoverCharacteristics 返回的 data 类型说明
  20.   读取 descriptor 请参考 discoverDescriptors 返回的 data 类型说明
  21. **/
复制代码


14.write 向设备写入数据
• 每有数据回发都会触发回调函数;
  1. waiting();
  2. jsBridge.ble.write({
  3.   //必须,字符串,设备的 uuid(MAC 地址)
  4.   uuid       : "E4:19:C1:BC:0B:60",
  5.   //必须,字符串,服务 uuid,调用 discoverServices 可获取
  6.   serviceUUID: "00001800-0000-1000-8000-00805f9b34fb",
  7.   //必须,字符串,特征 uuid,调用 discoverCharacteristics 可获取
  8.   characteristicUUID: "00002a00-0000-1000-8000-00805f9b34fb",
  9.   //可选,字符串,可指定描述符 uuid,如果提供了则写入 descriptor,否则写入 characteristic
  10.   descriptorUUID    : "",
  11.   //必须,请将需要写入的 byte 流转换为 Hex 16进制串
  12.   value             : "48656C6C6F20776F726C64"
  13. }, function(succ, data) {
  14.   showData({
  15.     succ: succ,
  16.     data: data
  17.   });
  18. });
  19. /**
  20. data 为 json 对象:
  21.   写入 characteristic 请参考 discoverCharacteristics 返回的 data 类型说明
  22.   写入 descriptor 请参考 discoverDescriptors 返回的 data 类型说明
  23. **/
复制代码












欢迎光临 一门APP开发教程 (https://bbs.yimenapp.com/) Powered by Discuz! X3.4