ibeacons 和地理围栏结合 swift

Posted

技术标签:

【中文标题】ibeacons 和地理围栏结合 swift【英文标题】:ibeacons and geofencing combined swift 【发布时间】:2016-06-17 10:20:14 【问题描述】:

我在我的 swift 项目中同时使用地理围栏和信标。但是每次我进入或离开任何区域时,他们的进入和退出方法都会发生冲突。更具体地说,如何对相应的信标或地理围栏区域执行不同的方法?例如 我想在用户进入地理围栏区域时显示通知,并在用户进入信标区域时显示其他页面。

【问题讨论】:

【参考方案1】:

地理围栏区域和信标区域都是区域,因此调用相同的didEnterRegion 方法来通知您两者。您需要编写 didEnterRegion 方法以使用 if 语句检查区域的类。 (我忘记了 Swift 中的语法。)

编辑:

Objective-C 代码是

if ([region isMemeberOfClass: [CLBeaconRegion class]])

  //beacon code

else

  //geofence code

您当然可以将其转换为 Swift 语法,但 David Young 在下面的评论中展示了更好的方法:

if let beaconRegion = region as? CLBeaconRegion

  //beacon code

else

  //geofence code

(谢谢大卫。在我喝咖啡之前用 iPad 回答技术问题的用处有限。)

【讨论】:

谢谢邓肯 你能告诉我任何其他语言的语法吗,我会隐藏它... 这是正确的。在 Swift 中,您可以判断您的 region 是否为 CLBeaconRegionif let beaconRegion = region as? CLBeaconRegion /* beacon code here */ else /* geofence code here */ 不用担心。如果这回答了您的问题,您应该点击复选框接受它。

以上是关于ibeacons 和地理围栏结合 swift的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7.1 地理围栏和 iBeacons 停止工作

地理围栏不再从 ios7 中的终止状态重新启动应用程序?

HMS Core地理围栏能力助你实现指定范围人群的精准消息推送

地理围栏是不是可以包含许多其他地理围栏

HMS Core地理围栏能力助你实现指定范围人群的精准消息推送

圆形和矩形地理围栏的C逻辑/算法?