function searchIOS(){
var CBCentralManager = plus.ios.import("CBCentralManager");
var manager = new CBCentralManager();
var delegate = plus.ios.implements("CBCentralManagerDelegate", {
"centralManagerDidUpdateState:": centralManagerDidUpdateState,
"centralManager:didDiscoverPeripheral:advertisementData:RSSI:": didDiscoverPeripheral
});
manager.initWithDelegatequeue(delegate,null);
console.log('1、开始扫描蓝牙外设....');
manager.scanForPeripheralsWithServicesoptions(null, null);
}
function centralManagerDidUpdateState(central) {
var state = central.plusGetAttribute('state');
if (state == 4) {
console.log('请开启蓝牙');
}
console.log("2. 中央外设管理器状态 state= " + state);
}
function didDiscoverPeripheral(central, peripheral, advertisementData, RSSI) {
console.log('4. 发现蓝牙外设 didDiscoverPeripheral')
console.log('<br>central=' + JSON.stringify(central));
//为什么能发现,但获取不到蓝牙设备,以下三个值均返回 undefined
console.log('<br>peripheral=' + JSON.stringify(peripheral));
console.log('<br>advertisementData=' + JSON.stringify(advertisementData));
console.log('<br>RSSI=' + JSON.stringify(RSSI));
}
以上是根据论坛中的信息编写的IOS上查询蓝牙的方法,但是只能查询到蓝牙的开启状态,其他的信息都拿不到?哪位大神指导一下呗。另外manager.initWithDelegatequeue(delegate,null);这个方法如果第二个参数为空的情况下在最新版本的ios上无法执行,需要怎么修改呢?
5 个回复
最佳回复
DCloud_heavensoft
更新:5+已提供蓝牙,参考http://www.html5plus.org/doc/zh_cn/bluetooth.html 注意需要最新版HBuilderX 1.3
DCloud_IOS_XTY
如果是离线打包可以在Appdelegate文件中这么写下:
m***@qq.com (作者)
真机调试不行呢?现在还没有离线打包的环境,只能在线打包,在线打包不行吗?
m***@qq.com (作者)
经过反复调试,发现在ipad上没有问题,但是在iphone上还是有问题。调试过程将代码调整如下:
真机调试情况下将manager.initWithDelegatequeue(delegate,null); 换成manager.initWithDelegatequeue(delegate,null,null); 这个的情况下,ipad不能继续运行,iphone不闪退,但是也不能得到什么结果。
7***@qq.com
楼主,最后是怎么搞定的?