Я использую собственную ионную библиотеку ibeacon для обнаружения маяков. Я могу обнаружить маяки с android, но когда я пытаюсь в ios, я всегда вижу пустой массив маяков.Я попробовал эти вещи, но все еще не вижу маяки в ios (устройство iphone 6s плюс 11.4.1) (служба Bluetooth включена на устройстве)
Я пробовал как requestWhenInUseAuthorization, так и requestAlwaysAuthorization.
Я добавляю NSLocationAlwaysUsageDescription и NSLocationWhenInUseUsageDescription ключ в info.plist
мой код такой, он работает на устройстве Android
import { Injectable } from '@angular/core';
import { Platform, Events } from 'ionic-angular';
import { IBeacon } from "@ionic-native/ibeacon";
@Injectable()
export class BeaconProvider {
delegate: any;
region: any;
constructor(
public platform: Platform,
public events: Events,
private iBeacon: IBeacon
) {
this.initialise();
}
initialise(): any {
let promise = new Promise((resolve, reject) => {
if (this.platform.is("cordova")) {
this.iBeacon.requestAlwaysAuthorization();
// ALSO try this one too this.iBeacon.requestWhenInUseAuthorization();
this.delegate = this.iBeacon.Delegate();
this.delegate.didRangeBeaconsInRegion().subscribe(
data => {
this.events.publish("didRangeBeaconsInRegion", data);
//console.log("didRangebeacons__" + JSON.stringify(data)); // empty beacons array
},
error => console.error()
);
this.region = this.iBeacon.BeaconRegion("deskBeacon", "e2c56db5-dffb-48d2-b060-d0f5a71096e0");
this.iBeacon
.startRangingBeaconsInRegion(this.region)
.then(
() => {
resolve(true);
},
error => {
console.error("Failed to begin monitoring: ", error);
resolve(false);
}
);
} else {
resolve(false);
}
});
return promise;
}
}
РЕДАКТИРОВАТЬ Мои службы определения местоположения включены, и я использую тот же uuid в iOS или Android (ионный, тот же код). Таким образом, я пытался сделать iphone в качестве передатчика маяка с помощьюприложение на рынке, другой iphone может видеть его как маяк.А вот и скриншот приложения "Область маяка"