EstimoteProximitySDK 1.8.0

EstimoteProximitySDK 1.8.0

Piotr KrawiecLukasz KostkaDJ Hayden维护。



Estimote Proximity SDK - iOS

在您的办公桌上、车内或包裹上贴一个 Estimote 信标,Estimote Proximity SDK 将在您进入或退出其范围时通知您的应用。在室内工作,后台运行,精确度可达几米。

由 Estimote 监控提供支持:Estimote 自己的信号处理技术,注重最大的可靠性。(比我们基准测试的其他基于信标的技术高 3 倍

其他 Proximity SDK 突出特点包括

  1. 基于标签的识别:使用可读标签而不是抽象标识符来定义您的邻近区域。
  2. 每个信标的多个区域:每个单一信标上设置多个进入/退出区域。(例如,“近区域”和“远区域”)
  3. 软件定义的范围:在代码中定义进入/退出触发范围,而不是靠信标的广播功率。
  4. 基于云的标签和分组:在不更改应用程序代码的情况下添加、删除和替换信标 - 只需在 Estimote Cloud 中修改标签。

目录

基于标签的识别

Estimote Proximity SDK 使用基于标签的识别来允许动态设置更改。您可以通过标签监控信标,这些标签是在 Estimote Cloud 中分配的。例如,您不必说

"监控信标 123 和信标 456"

而是说

"监控标记为大厅的信标"。

这样,如果您需要替换或添加更多信标到大厅,只需在 Estimote Cloud 中添加/更改标签。下次启动 EPXProximityObserver 时,您的应用程序将拾取新的设置。

重要! 由于我们的 SDK 仍处于 0.x.x 版本,我们根据您的反馈不断修改我们的 API。我们最新的版本已经将我们的 SDK 基于简单的标签,并支持用作可选额外信息的附件。

关键组件

Estimote Proximity SDK 基于以下三个关键组件构建:观察器区域以及 区域上下文。如果您使用了早期版本的 Proximity SDK,您应该熟悉前两个组件,但对于最后一个组件可能不熟悉。

  • 观察器 - 负责为提供的区域列表启动和停止监控,
  • 区域 - 一组具有相同 标签 的信标组合的物理空间的表示。
  • 区域上下文 - 单个信标及其标签和分配给它的一组附件的组合。
  • 动作(回调) - 每个区域都有三种回调,当您进入或退出 区域上下文,或听到的 上下文 数量发生变化时触发。

以下展示了两个区域的示例

  • blueberry 区域有两个 区域上下文
  • mint区域只有一个 区域上下文

基于标签的区域

安装

Swift 兼容性

版本 1.2.0 开始,Proximity SDK 支持 Swift 4.2。

CocoaPods

CocoaPods 是一个方便添加外部库的途径。可以使用它来获取 Proximity SDK

  1. 在您的 Podfile 中添加 pod 'EstimoteProximitySDK'
  2. 运行 pod install --repo-update
  3. 确保 Always Embed Swift Standard Libraries 构建设置设置为 (默认情况下,此选项在 Objective-C 项目中开启)。Estimote Proximity SDK 内部包含 Swift 代码,需要应用包中的 Swift 标准库。
  4. import EstimoteProximitySDK(Swift)或 #import <EstimoteProximitySDK/EstimoteProximitySDK.h>(Objective–C)添加到您的代码中

手册

  1. 下载 Proximity SDK 仓库
    • 点击该仓库中的 Download ZIP 按钮,或
    • 运行 git clone [email protected]:Estimote/iOS-SDK-Proximity-SDK.git --depth=1
  2. 下载蓝牙扫描库仓库
  3. EstimoteProximitySDK.framework 拖放到您的项目中(在 Options > Copy files if needed 中启用复选框)
  4. EstimoteBluetoothScanning.framework 拖放到您的项目中(在 Options > Copy files if needed 中启用复选框)
  5. 将 Estimote Proximity SDK 添加到您的 Xcode 项目的 Build Phases > Embed Frameworks。如果此构建阶段不可见,您可以在 General > Embedded Binaries 部分添加 SDK。
  6. 将 Estimote Bluetooth Scanning 库添加到您的 Xcode 项目的 Build Phases > Embed Frameworks。如果此构建阶段不可见,您可以在 General > Embedded Binaries 部分添加 SDK。
  7. 确保 Always Embed Swift Standard Libraries 构建设置设置为 (默认情况下,此选项在 Objective-C 项目中开启)。Estimote Proximity SDK 内部包含 Swift 代码,需要应用包中的 Swift 标准库。
  8. import EstimoteProximitySDK(Swift)或 #import <EstimoteProximitySDK/EstimoteProximitySDK.h>(Objective–C)添加到您的代码中

在您的应用中使用它

库与 Objective–C 和 Swift 兼容。公共类是用 Objective–C 编写的,API 优化用于 Swift。作为动态框架分发。

要求

  • 一个或多个启用Estimote监控的ESTIMOTE邻近信标。有关如何启用它的信息,请点击此处
  • 运行iOS 10或更高版本的iOS设备,并具有低能耗蓝牙。
  • Estimote Cloud账户。

设置标签

要配置标签

  1. 请访问https://cloud.estimote.com/#/
  2. 点击您想配置的信标
  3. 点击编辑设置按钮
  4. 点击标签字段,并选择一个标签(如果有可用的话)。
  5. 您可以在列表底部点击创建新标签并输入一个名称,或者选择一个标签(您想要或已经有多少个都行)。
  6. 点击保存更改

标签是仅在云端设置——无需通过Estimote应用连接到信标!

分配信标标签

您的应用程序内部

要在您的应用程序中使用SDK,请前往Estimote Cloud中的应用程序部分。注册一个新的应用程序或使用可用模板以获取应用程序ID和应用程序令牌凭据对。在您的应用程序中,使用CloudCredentials设置凭据。

let credentials = CloudCredentials(appID: "your-app-id", appToken: "your-app-token")

然后,使用ProximityObserver配置邻近发现。有关标签的更多信息,请参阅本部分文档

// Create observer instance
self.proximityObserver = ProximityObserver(credentials: credentials, onError: { error in
    print("Oops! \(error)")
})
// Define zones
let blueberryZone = ProximityZone(tag: "blueberry", range: ProximityRange.near)
blueberryZone.onEnter = { zoneContext in
    print("Entered near range of tag 'blueberry'. Attachments payload: \(zoneContext.attachments)")
}
blueberryZone.onExit = { zoneContext in
    print("Exited near range of tag 'blueberry'. Attachment payload: \(zoneContext.attachments)")
}

blueberryZone.onContextChange = { contexts in
    print("Now in range of \(contexts.count) contexts")
}

// ... etc. You can define as many zones as you need.

// Start proximity observation
self.proximityObserver.startObserving([blueberryZone])

(可选)将附加组件添加到信标

虽然区域识别基于标签,但附加组件是一种向信标及其定义的区域添加内容的方法。这就像是一个定制后端,您可以将其添加到指定信标上的任意额外数据。分配给信标的所有附加组件都将在操作回调中返回的EPXproximityZoneContext对象中可用。有关详细信息,请参阅EPXProximityZone

要配置附加组件

  1. 请访问https://cloud.estimote.com/#/
  2. 点击您想配置的信标
  3. 点击设置按钮
  4. 点击信标附加组件字段
  5. 添加任何您想要的附加键值对
  6. 点击保存更改

附加组件是仅在云端设置——无需通过Estimote应用连接到信标!

分配信标附加组件

位置和蓝牙权限,后台支持

Proximity SDK需要在后台运行时使用位置服务,这意味着您需要请求用户允许应用程序访问他们的位置。为此,设置位置服务使用说明

  • 在您的应用程序的Info.plist文件中添加一个值为隐私 - 总是使用位置的关键摘要的键。当应用程序调用ProximityObserver.startObserving(...)时,将向用户显示此消息。它是Core Location工作的必需的

Proximity SDK使用蓝牙,这意味着您需要请求用户允许应用程序访问蓝牙。为此,设置蓝牙使用说明

  • 在您的应用程序的Info.plist文件中添加一个值为隐私 - 总是使用蓝牙的关键摘要的键。

要允许应用程序在接近信标时后台运行,启用蓝牙后台模式

  • 在Xcode项目设置中设置使用蓝牙LE配件 -> 功能 -> 后台模式。它是Core Bluetooth在后台工作的必需的

附加功能

为有限互联网连接的项目缓存数据。

从版本0.13.0开始,ProximityObserver可以存储触发事件所需的数据。这允许在没有互联网接入的情况下执行典型的邻近度观察。为了启用此功能,您只需要在互联网连接可用时至少调用一次ProximityObserver.startObserving([zone1,...])实例;它将从此接下来从Estimote Cloud检索所有必要的数据。

扫描Estimote遥测

用例:从您的Estimote信标获取传感器数据。

从版本1.1.0开始,`ProximityObserverConfiguration`已经公开了属性之一,它允许将遥测数据报告给Estimote Cloud。

您可以轻松扫描包含您的信标传感器数据的原始Estimote遥测数据包。遥测数据通过两个独立的子数据包进行广播,称为帧A帧B。Proximity SDK 允许您一次性扫描整个合并数据(包含帧AB数据以及完整的设备标识符)。默认启用遥测报告,但如果您出于任何原因想要禁用此功能,可以通过以下步骤停止遥测报告:

let proximityConfiguration = ProximityObserverConfiguration.custom(with: .info, requestsCLAuthorization: true, telemetryReportingEnabled: false)

示例应用

要获取一个工作原型,请从 Estimote Cloud 下载一个现成的应用模板。App ID 和 App Token 凭证将自动生成。

  • 使用 Proximity 在前台运行一个简单演示。
  • 使用 Notification 在后台运行演示并显示通知。

演示需要配置 Estimote Monitoring 的 Estimote 信标(设置)

文档

在这里您可以找到文档。

您的反馈和问题

在 Estimote,我们非常重视反馈!以下是一些分享您想法的常见方法:

  • 在我们的 问题页面 上发布问题/问题/改进建议。
  • 在我们的 论坛 上咨询我们的社区经理。

变更日志

要查看我们的 SDK 最近版本的更改,请查阅变更日志