gpt4 book ai didi

ios - ionic ios 应用程序中的 didRangeBeaconsInRegion 事件中的信标数组为空

转载 作者:行者123 更新时间:2023-11-28 20:56:05 26 4
gpt4 key购买 nike

我正在使用 ionic native ibeacon 库来检测信标。我可以使用 android 检测信标,但是当我在 ios 中尝试时,我总是看到一个空的信标阵列。我尝试了这些东西,但仍然看不到 ios 中的信标(设备是 iphone 6s plus 11.4.1)(设备上启用了蓝牙服务)

  • 我尝试了 requestWhenInUseAuthorization 和requestAlwaysAuthorization。

  • 我在 info.plist 中添加 NSLocationAlwaysUsageDescription 和 NSLocationWhenInUseUsageDescription 键

我的代码是这样的,它在安卓设备上运行

    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;
}
}

编辑我的位置服务已开启,我在 ios 或 android 中使用相同的 uuid( ionic ,相同的代码)。顺便说一下,我试图通过市场上的应用程序将 iphone 作为信标发射器,其他 iphone 可以将其视为信标。这是信标范围应用程序的屏幕截图 enter image description here

最佳答案

在 iOS 上需要检查的几件事:

  1. 转到设置、位置,并检查您的应用是否已被授予位置权限。
  2. 确保蓝牙已打开
  3. 试试第 3 方信标扫描仪,例如 Beacon Scope for iOS ,使用您的 UUID 配置它,并确保它可以使用同一设备检测到您的信标。

编辑:还有几个步骤

  1. 确保 iOS 在“设置”(整体设置,不仅仅是您的应用程序)中打开“位置”设置 -> 隐私 -> 定位服务

  2. 由于您可以在 Android 而不是 iOS 上检测到,请仔细检查您在 Android 上看到的 UUID 并确保它与您在 iOS 上输入的完全匹配。

  3. 如果配置中的 UUID 匹配,但它仍然无法检测到,请验证信标实际上发送的是 iBeacon 帧,而不是 AltBeacon 或 iPhone 默认情况下无法看到的某些格式。如果您使用 Beacon Scope app for Android , 它会告诉你帧类型。

enter image description here

关于ios - ionic ios 应用程序中的 didRangeBeaconsInRegion 事件中的信标数组为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52297053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com