iBeaconNotifier 0.1.6

iBeaconNotifier 0.1.6

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2014年12月

未声明的维护。



  • Ken Morishita

关于

这是一个将多个 iBeacon 的状态变化转换为 NSNotification 来通知的库。主要具有以下两个功能。

  • 通知每个 Beacon 的状态变化
  • “最近靠近的 Beacon” 发生变化时通知

各个 Beacon 的状态变化通知

指定多个 Beacon,对于每个 Beacon,

  • 进入范围(IN)
  • 离开范围(OUT)
  • 远离(FAR)
  • 靠近(NEAR)

这些状态变化都将以 NSNotification 的形式通知。

“最近靠近的 Beacon” 发生变化则通知

如果各个 Beacon 的 UUID 相同,会输出哪个是其中最靠近的 Beacon 的通知。

如果 UUID 不同,则输出在数量上与第一个 Beacon 的 UUID 相同的 Beacon 集合中最靠近的 Beacon 的通知。

用法

为了运行示例项目;克隆存储库,并首先从示例目录运行 pod install

请参阅 Example/IBeaconNotifierExample/{GRTAppDelegate.m,GRTExampleViewController.m}

需求

安装

如何使用

步骤1: 设置要使用的 Beacon 的信息

首先,以 TSV 格式创建要使用的 Beacon。例如,先保存以下这样的 beacon.tsv 到 Bundle 中。这个 TSV 是这样的:“第一行是列名”,“第二行及以下都是数据”。各列的含义如下。

  • id: Beacon 的标识符。这个 BeaconID 包含在 NSNotification 中。
  • uuid: iBeacon 的 UUID
  • major: iBeacon 的 major 值
  • minor: iBeacon 的 minor 值

例子:

id  uuid    major   minor
BeaconA 00000000-04B1-1001-B000-001C4D153904    1   4
BeaconB 00000000-04B1-1001-B000-001C4D153904    0   2
BeaconC 00000000-04B1-1001-B000-001C4D153904    1   3

步骤2: 启动 Beacon 监视服务

首先,

#import "IBNBeaconService.h"

导入。

要启动 Beacon 监视,可以这样做。

    // start beacon service
    self.beaconService = [IBNBeaconService createWithFilename:@"beacon.tsv" bundle:nil];
    [self.beaconService start];

IBNBeaconService 的实例可以在任何地方保持。

步骤3: Observe Beacon 的通知事件

然后,您可以用任意代码通过 NSNotificationCenter 接收 beacon 的事件。

首先,导入定义有常量的头文件。

#import "IBNBeaconServiceConst.h"

接收各个 Beacon 的状态变化通知

Observe IBN_CHANGE_BEACON_STATE 的 Notification。

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(handleEvent:) 
                                             name:IBN_CHANGE_BEACON_STATE 
                                           object:nil];

在事件处理程序中,您可以获取以下信息。

  • 哪个 Beacon: note.userInfo[IBN_BEACON_ID]
    • 在前面提到的 beacon.tsv 中指定的 id 字符串进入
  • 状态变成了什么: note.userInfo[IBN_BEACON_STATE]
    • 以下之一进入:
    • 进入范围(IN): IBN_BEACON_STATE_INSIDE
    • 离开范围(OUT): IBN_BEACON_STATE_OUTSIDE
    • 远离(FAR): IBN_BEACON_STATE_FAR
    • 靠近(NEAR): IBN_BEACON_STATE_NEAR

「最接近的Beacon」如果发生变化则发送通知

观察 IBN_CHANGE_NEAREST_BEACON 的通知。

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(handleEvent:) 
                                             name:IBN_CHANGE_NEAREST_BEACON 
                                           object:nil];

在事件处理程序中,您可以获取以下信息。

  • 哪个Beacon最接近:note.userInfo[IBN_BEACON_ID]
    • 在前面提到的 beacon.tsv 中指定的 id 字符串进入
    • 如果没有最近的Beacon(即所有Beacon都超出范围),将接收 NsNull

作者

Morishita Ken, [email protected]

许可证

iBeaconNotifier 在MIT许可证下可用。更多信息请参阅LICENSE文件。