native.js IOS蓝牙发现不了外设,用OC编写的原生的就是可以的
![1***@qq.com](http://img-cdn-tc.dcloud.net.cn/uploads/avatar/000/07/60/94_avatar_mid.jpg?v=0)
- 发布:2018-01-26 15:38
- 更新:2018-12-16 06:55
- 阅读:2573
最佳回复
![1***@qq.com](http://img-cdn-tc.dcloud.net.cn/uploads/avatar/000/07/60/94_avatar_mid.jpg?v=0)
1***@qq.com (作者) - 碧蓝天空自由飞
export default {
name: "Bluetooth-test",
created() {
},
mounted() {
},
destroyed() {
//删除对象
if (this.central) {
plus.ios.deleteObject(this.central);
}
},
data() {
return {
// central:null
}
},
methods: {
testBluetooth() {
//调用IOS的蓝牙相关库
let CBCentralManager = plus.ios.importClass("CBCentralManager");
let centralObject = new CBCentralManager();
let delegate = plus.ios.implements("CBCentralManagerDelegate", {
"centralManagerDidUpdateState:": this.centerManagerDidUpdateState,
"centralManager:didDiscoverPeripheral:advertisementData:RSSI:": this.didDiscoverPeripheral
});
//初始化CentralManager对象
centralObject.initWithDelegatequeue(delegate, null);
},
centerManagerDidUpdateState(central) {
let state = central.plusGetAttribute("state");
console.log("中央外设管理器状态" + JSON.stringify(central));
console.log("state=" + state);
switch (state) {
case 0:
console.log("蓝牙状态未知");
break;
//CBCentralManagerStateResetting
case 1:
console.log("蓝牙已重置");
break;
//CBCentralManagerStateUnsupported
case 2:
console.log("不支持蓝牙");
break;
//CBCentralManagerStateUnauthorized
case 3:
console.log("蓝牙未认证");
break;
//CBCentralManagerStatePoweredOff
case 4:
console.log("蓝牙未开启");
break;
//CBCentralManagerStatePoweredOn
case 5:
{
console.log("蓝牙已开启");
let NSDictionary = plus.ios.importClass("NSDictionary");
let option = new NSDictionary();
let result = central.scanForPeripheralsWithServicesoptions(null, option);
console.log(result);
console.log(central.scanForPeripheralsWithServicesoptions);
}
break;
}
},
didDiscoverPeripheral(central, peripheral, advertisementData, RSSI) {
console.log("他妈的终于进来了");
console.log(arguments);
// console.log("central:" + JSON.stringify(central))
// console.log("peripheral:" + JSON.stringify(peripheral))
// console.log("advertisementData:" + JSON.stringify(advertisementData))
// console.log("RSSI:" + JSON.stringify(RSSI))
// var name = peripheral.plusGetAttribute("name");
// var uuid = peripheral.plusGetAttribute("identifier").plusGetAttribute("UUIDString");
// var rssi = RSSI.plusGetAttribute("intValue");
}
}
}
云飞扬啊
官方就不能给个蓝牙打印的demo么?给的都是理论的,实际上很多错误,跑不通啊。。
2019-02-21 14:40