Ios 在Cordova-able Central插件上从kCBAdvDataManufacturerData提取数据
我正在ionic3中使用可录制插件。在真正连接之前,我试图通过扫描Ios 在Cordova-able Central插件上从kCBAdvDataManufacturerData提取数据,ios,cordova,typescript,cordova-plugins,ionic3,Ios,Cordova,Typescript,Cordova Plugins,Ionic3,我正在ionic3中使用可录制插件。在真正连接之前,我试图通过扫描TI传感器标签来解析kCBAdvDataManufacturerData信息 当我扫描它时,我在Xcode中看到以下日志: 2017-06-30 12:51:54.308883+0200 MyApp[622:121070] Discovered { advertising = { kCBAdvDataIsConnectable = 1; kCBAdvDataLocalName = "
TI传感器标签来解析kCBAdvDataManufacturerData
信息
当我扫描它时,我在Xcode中看到以下日志:
2017-06-30 12:51:54.308883+0200 MyApp[622:121070] Discovered {
advertising = {
kCBAdvDataIsConnectable = 1;
kCBAdvDataLocalName = "CC2650 SensorTag";
kCBAdvDataManufacturerData = {
CDVType = ArrayBuffer;
data = "DQADAAA=";
};
kCBAdvDataServiceUUIDs = (
AA80
);
kCBAdvDataTxPowerLevel = 0;
};
id = "F674D953-925E-4371-B273-3468D481E936";
name = "CC2650 SensorTag";
rssi = "-39";
}
kCBAdvDataManufacturerData
中的数据字段似乎是base64
编码的,我尝试使用以下函数对其进行解码:
private base64ToBase16(base64) {
return window.atob(base64)
.split('')
.map(function (char) {
return ('0' + char.charCodeAt(0).toString(16)).slice(-2);
})
.join('')
.toUpperCase();
}
当我试着打电话时,比如:
console.log('stringify:', this.base64ToBase16(device.advertising.kCBAdvDataManufacturerData.data));
它报告说,它不起作用
成功回调ID:BLE251402365中出错:类型错误:未定义为
不是对象(评估)
'device.advisting.kCBAdvDataManufacturerData.data')
有谁能帮忙解决这个问题吗。另外,kCBAdvDataManufacturerData
中的CDVType
字段代表什么,因为我只在少数设备中看到此字段,并非所有设备都有此参数
期待着您的建议。事实上,我也在为同样的问题苦苦挣扎。在我的例子中,它是“kcbadvdataserviceuids”。因为我周围有很多未完成的测试设备,所以扫描无法正常工作。我的建议是用Native修改插件,这就是我要尝试的。