写(写入数据,带响应)
[!TIP|labelVisibility:hidden|iconVisibility:hidden] navigator.bluetooth.write(device_id,service_uuid,characteristic_uuid,value, success, error)
支持平台:
- Android
- iOS
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| device_id | String | 是 | 设备号 |
| service_uuid | String | 是 | 服务id |
| characteristic_uuid | String | 是 | 特征值 |
| value | ArrayBuffer | 是 | 要升级的蓝牙模块文件 |
| success | Function | 是 | 成功回调函数 |
| error | Function | 是 | 失败回调函数 |
device_id (android)设备mac地址,(ios)设备id。
service_uuid 服务id,连接蓝牙时返回。
characteristic_uuid 特征值,连接蓝牙时返回。
value 对应到iOS方法里为NSData,java为 byte[]。
success 函数会返回特征值的新增(如果不为空),iOS为NSData转ArrayBuffer,java为byte[]转ArrayBuffer。前端收到的是ArrayBuffer,移动端有相应的方法将NSData和byte[]转为ArrayBuffer。
error函数会返回一个字符串,错误的相关信息。
示例代码
// 引用js
<script src='supconit://hcmobile.js'></script>
<script>
// 监听’deviceready‘事件
document.addEventListener('deviceready', onDeviceReady, false)
function onDeviceReady(){
var uuid = 'BA6607B4-***';
var service_uuid='FFF0';
var value = '90**';
navigator.bluetooth.write(uuid, service_uuid,'FFF5',stringToBytes(value), function (res) {
alert(JSON.stringify(res));
}, function (error) {
alert(error);
});
function stringToBytes(string) {
var array = new Uint8Array(string.length);
for (var i = 0, l = string.length; i < l; i++){
array[i] = string.charCodeAt(i);
}
return array.buffer;
}
}
</script>
响应示例代码:
{
"service": "FF**",
"characteristic": "FF**",
"peripheral": "BA6607B4-***"
}