问题标签 [clbeaconregion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3590 浏览

ios - didEnterRegion 和 didRangeBeacons 之间的区别

就用例而言,didEnterRegion 和 didRangeBeacons 之间的确切区别是什么?我的意思是什么时候应该实施 didEnterRegion/didExitRegion 以及什么时候应该实施 didRangeBeacons ?

每个委托方法的确切功能是什么?从苹果的文档来看,还不是很清楚。

0 投票
2 回答
291 浏览

ios - 一次连接到多个 iBeacon

如果我有一个设备作为接收器并且它连接到一个 iBeacon,如果它连接到另一个 iBeacon 同时仍在处理与第一个 iBeacon 的连接(例如,还没有完成运行 didEnterRegion 方法)会发生什么?框架是否会自动处理此问题并创建另一种“实例”,还是我会遇到问题?

谢谢

0 投票
0 回答
736 浏览

ios - 在正常工作 3-4 天后尝试定位信标时应用程序崩溃

我有这个信标应用程序 - 就像其他人的信标应用程序一样 - 监控一定数量的区域,一旦它进入一个区域,它就会开始测距 3 秒,然后停止测距并继续监控。这一切都发生在后台。它将最近的信标的数据保存到本地数据库,并将数据发送到服务器。

奇怪的是,这可以正常工作大约 3-4 天,然后突然停止工作。当我再次打开应用程序查看发生了什么时,应用程序似乎崩溃了。

崩溃的类型为 SIGABRT。

你们中有人经历过吗?

这是最相关的代码:

一旦用户按下“开始”按钮,就会调用 startLocationManager():

这是符号化的崩溃日志。该应用程序称为“时间云”。

0 投票
1 回答
5599 浏览

ios - CLBeaconRegion,如何关闭警告:打开蓝牙允许*连接到附件

我们有一个项目正在使用 CoreLocation 区域来监控 iBeacon 区域在应用程序后台进入/退出。CLBeaconRegion (CLRegion)、CLBeacon 等。CLLocationManager 在进入 CLBeacon (iBeacon) 区域时返回回调。它是一个轻量级的封装在下面的 bluetoothManager 周围。

我们遇到的问题是,当用户没有打开蓝牙时,Iphone 会定期发出系统级警告“打开蓝牙以允许“APP_NAME”连接其他配件”。这种情况经常发生,今天早上我已经得到了 4 次,因为应用程序在后台运行。CLLocationManager 可能正在尝试监视那些 CLBeaconRegion,但蓝牙已关闭,因此无法执行此操作。

另一篇文章提到 CBCentralManager 有一个属性 CBCentralManagerOptionShowPowerAlertKey,它允许禁用此警告。

iOS CoreBluetooth 被动检查蓝牙是否启用而不提示用户打开蓝牙

不幸的是,我发现无法访问底层蓝牙或任何 CBCentralManager 引用来使用它。

有什么方法可以禁用此警告以进行 CLBeaconRegion 监控?

在此处输入图像描述

0 投票
1 回答
1046 浏览

ios - UIBackGround 模式和 iBeacons:应用被拒绝

Apple 拒绝了 iBeacon 应用程序,因为我在后台模式下检查了“位置更新”。

我很明显,iBeacons 的应用程序监视器,这也应该在后台工作。

苹果的回应:

“...您的应用在 Info.plist 文件中的 UIBackgroundModes 键中声明支持位置,但未声明任何需要持久位置的功能。在 Info.plist 文件中的 UIBackgroundModes 键中声明支持位置的应用必须具有功能这需要持久的位置......”

我的印象是我需要打开“位置更新”作为后台模式,以便能够在后台监控 CLBeaconRegions。是这样吗?

0 投票
2 回答
508 浏览

ios - 根据当前位置从监控中移除 CLBeaconRegion

因此,我正在寻找一种方法来从受监视区域中删除 BeaconRegion,具体取决于它与我当前位置的距离。我虽然可以使用中心属性,但我认为我遗漏了一些东西......因为纬度/经度值无效......

如何根据 con currentLocation 删除 BeaconRegion?

0 投票
1 回答
668 浏览

ios - 设置 iBeacon 的主要和次要值

我想在进入区域时正确设置主要和次要值。例如,我为不同类型的客户设置了不同的队列。像高级和白银类别。

如果客户进入Premium 的车道,他应该将他的主要价值广播为他所在车道的价值,即Premium 和次要的数字。

如何根据客户当前的位置正确设置这些值?

0 投票
2 回答
174 浏览

ios - 信标管理器 didenter didexit 区域方法被重复调用

我正在监视 3 个区域。但是即使应用程序在该区域内,也确实会重复触发进入区域和 didexitregion 方法。仅当应用程序进入或退出 3 个区域中的任何一个时,我才需要通知。发生这种情况是因为我正在反复测试应用程序吗

这是我的代码:

0 投票
3 回答
786 浏览

ios - 仅在调用 requestAlwaysAuthorization 时才调用 DidEnterRegion。信标

didEnterRegion并且didExitRegion仅在我请求并允许 CoreLocation 始终授权后调用

即使我请求 WhenInUseAuthorization didExit 和 didEnter 也不会被调用

如果我不能调用它,我应该如何触发信标范围?

有什么解决办法吗?

更新

Apple 拒绝了我的应用调用 requestAlwaysAuthorization()

这是我今天早上提交给审核小组的问题:

为了监控信标区域(包括一些 Apple 应用程序在内的许多应用程序中使用的信标的核心功能),您需要让用户允许应用程序访问位置,即使在不使用应用程序时也是如此。我正在使用 .requestAlwaysAuthorization 来启用信标在后台进行监控。为什么不允许这样做?

苹果今天下午在 iTunes Connect 上的回应:

感谢您的反馈意见。但是,iBeacon 功能不需要后台位置。因此,需要在重新提交之前去除背景位置特征。

因此,如果信标应该在后台自动监控区域,但我不能请求后台监控的许可,并且除非我获得许可,否则信标不会在后台监控,那么我应该如何在后台监控区域?

0 投票
1 回答
977 浏览

ios - CLPeripheralManager.startAdvertising 不接受 CLBeaconRegion.peripheralDataWithMeasuredPower 的返回值

根据Swift 2.0 文档CLBeaconRegion应该仍然可以将peripheralDataWithMeasuredPower:方法startAdvertising:的输出传递给CLPeripheralManager.

获取信标广告数据

- peripheralDataWithMeasuredPower:

检索可用于将当前设备宣传为信标的数据。

宣言

迅速

func peripheralDataWithMeasuredPower(_measuredPower: NSNumber?) -> NSMutableDictionary

目标-C

- (NSMutableDictionary<NSString *,id> * _Nonnull)peripheralDataWithMeasuredPower:(NSNumber * _Nullable)measuredPower

参数

measuredPower 设备的接收信号强度指示器 (RSSI) 值(以分贝为单位)。该值表示从一米外测得的信标强度,并在测距期间使用。指定nil使用设备的默认值。

返回值

可以与 a 结合使用的数据字典,CBPeripheralManager以将当前设备宣传为信标。

讨论

返回的字典对信标的识别信息以及广告信标所需的其他信息进行编码。您不需要直接访问字典内容。将字典传递给 a 的startAdvertising:方法 CBPeripheralManager以开始宣传信标。

可用性

在 iOS 7.0 及更高版本中可用。

然而,peripheralDataWithMeasuredPower:返回 an NSMutableDictionarywhile 的startAdvertising:方法CLPeripheralManager接受一个 Swift 字典[String : AnyObject]?,尽管文档声称它接受一个NSDictionary. 以下代码在 Swift 1.0 中有效:

在 Swift 2.0 中,相同的代码编译失败并出现警告: 编译失败,出现警告:

NSDictionary不能转换为[String : AnyObject]; 你的意思是as!用来强迫沮丧吗?

但是,强制向下转换总是失败。

这是文档错误,Swift 2.0 中的错误,还是我遗漏了什么?