|
[插件使用]
ble的connect使用跨页面传递的uuid连接,连接不上
[复制链接]
做了两个页面,用户需要先在连接设备页面里连接上设备,然后跳转到实时数据页面以后看数据,设备就显示是未连接状态,于是我在实时数据页面重连,在蓝牙页面连接成功以后就将uuid放到本地缓存里了,然后实时数据页面使用就一直没有反应,是不能直接连接吗?求解答谢谢!
var uuid = $api.getStorage('connectuuid');
api.confirm({
title: '提示',
msg: '上次连接设备为'+serviceName+',是否连接?',
buttons: ['确定', '取消']
}, function(ret, err) {
var index = ret.buttonIndex;
if(index == 1){
console.log(uuid);
var layerindex = layer.open({
type: 2,
content: '正在连接...',
shadeClose: false
});
ble.connect({
peripheralUUID: uuid
}, function(ret, err) {
if (ret) {
layer.close(layerindex);
if(ret.status == true){
console.log(JSON.stringify(ret));
api.toast({
msg: '连接成功',
duration: 2000,
location: 'bottom'
});
//获取服务UUID
ble.discoverService({
peripheralUUID: uuid
}, function(ret) {
if (ret) {
console.warn(JSON.stringify(ret));
if(ret.status == true){
var services = ret.services;
for(var i = 0;i < services.length;i++){
var service = services[i];
if (service.indexOf('0000ffe0') != -1) {
console.warn(service);
$api.setStorage('connectserviceuuid',service);
}else{
console.log('不包含该设备');
}
}
var serviceUUID = $api.getStorage('connectserviceuuid');
//获取特征uuid
ble.discoverCharacteristics({
peripheralUUID: uuid,
serviceUUID:serviceUUID
}, function(ret) {
if (ret) {
var chartuuids = ret.characteristics;
for(var i = 0;i<chartuuids.length;i++){
var chartuuid = chartuuids[i].uuid;
if (chartuuid.indexOf('0000ffe1') != -1) {
console.warn(chartuuid);
$api.setStorage('connectchartuuid',chartuuid);
}else{
console.log('不包含该设备');
}
}
var chartUUID = $api.getStorage('connectchartuuid');
// 获取所有描述符
ble.discoverDescriptorsForCharacteristic({
peripheralUUID: uuid,
serviceUUID: serviceUUID,
characteristicUUID: chartUUID
}, function(ret) {
if (ret.status == true) {
console.log(JSON.stringify(ret));
var value = '0903083B0002B6EE';
var typevalue = '090317770008F0EA';//类型
getvalue(uuid,serviceUUID,chartUUID,value);
//延迟加载
// setTimeout(function(){
// getdevicevalue(uuid,serviceUUID,chartUUID,typevalue)
// },2000)
}
});
}else{
console.warn(JSON.stringify(err));
}
});
}
}
});
}else{
$('.deviceconnect').hide();
api.toast({
msg: '连接失败',
duration: 2000,
location: 'bottom'
});
}
} else {
layer.close(layerindex);
api.toast({
msg: JSON.stringify(err.msg),
duration: 2000,
location: 'bottom'
});
console.log(JSON.stringify(err));
}
});
console.warn(uuid);
}
});
|
|