Для проекта Ioni c я пытаюсь сканировать iBeacons на устройстве Android. Используемый мной пример кода такой же, как описано в документации, за исключением UUID и идентификатора (я проверил их, и они выглядят правильно).
https://ionicframework.com/docs/v3/native/ibeacon/
delegate.didEnterRegion()
.subscribe(
data => {
console.log('didEnterRegion: ', data);
}
);
let beaconRegion = this.ibeacon.BeaconRegion('deskBeacon','F7826DA6-ASDF-ASDF-8024-BC5B71E0893E');
this.ibeacon.startMonitoringForRegion(beaconRegion)
.then(
() => console.log('Native layer received the request to monitoring'),
error => console.error('Native layer failed to begin monitoring: ', error)
);
Похоже, что все работает хорошо, когда он достигает didEnterRegion () со следующими данными:
eventType: "didEnterRegion"
region:
identifier: "my_identifier"
typeName: "BeaconRegion"
uuid: "my_id"
Единственная проблема в том, что возвращаемое значение (IBeaconPluginResult) не такое, как описано в документация (https://ionicframework.com/docs/v3/native/ibeacon/#IBeaconPluginResult), так как отсутствует массив маяков.
Также я реализовал делегат didRangeBeaconsInRegion, но он никогда не достигает обратного вызова.
delegate.didRangeBeaconsInRegion()
.subscribe(
data => console.log('didRangeBeaconsInRegion: ', data),
error => console.error()
);
Что я делаю не так? Я что-то упустил?
edit: Я также загрузил приложение Locate Beacon из магазина Google Play, которое обнаруживает маяк.