CleverTap-Geofence-SDK 1.0.6

CleverTap-Geofence-SDK 1.0.6

Akash MalhotraDarshan PaniaNishant KumarAishwarya NannaKushagra Mishra维护。



Version License codebeat badge Language Platform iOS 10.0+ Carthage compatible SwiftPM compatible

👋 简介

CleverTap Geofence SDK通过使用Core Location框架为CleverTap iOS SDK提供地理位置围栏功能。本文档列出了在您的应用程序中利用CleverTap Geofence的步骤。您还可以通过使用地理位置围栏自定义文档进一步自定义CleverTap Geofence的集成。

⍗ 内容

📋 要求

以下为使用CleverTap Geofence SDK所需的内容 -

🎉 安装

通过CocoaPods

CocoaPods是iOS项目的依赖管理器。要使用CocoaPods将CleverTap Geofence SDK集成到您的Xcode项目中,请在您的Podfile中指定以下内容

pod 'CleverTap-Geofence-SDK'
pod 'CleverTap-iOS-SDK', :git => 'https://github.com/CleverTap/clevertap-ios-sdk.git'

您可以参考演示应用程序了解CocoaPods的安装。

通过Swift Package Manager

Swift Package Manager是Xcode的一个工具,用于安装项目依赖项。要使用它安装CleverTap Geofence SDK,请按照以下步骤操作

  • 在Xcode中,转到文件 > Swift Package Manager > 添加包依赖项。
  • 在选择包装库时输入https://github.com/CleverTap/clevertap-geofence-ios.git,然后点击下一步。
  • 在下一屏幕上,选择一个SDK版本(默认情况下,Xcode选择最新稳定版本)。点击下一步。
  • 点击完成,并确保已将CleverTap-Geofence-SDK添加到适当的目标。

您可以参考演示应用程序了解SPM的安装。

有关通过Carthage手动安装CleverTap Geofence的说明,请参阅地理位置围栏自定义文档中的步骤。

🚀 集成

CleverTap Geofence使用Core Location API来设置地理位置围栏区域监控。CleverTap Geofence将不会请求用户的地理位置权限。应用程序必须在用户注册应用程序时根据需要请求地理位置权限。

1. 在Xcode中,启用应用程序目标中的Location Updates以启用Background Modes。您可以通过以下方式在Xcode中启用:

  • 在Xcode项目导航器中点击您的AppTarget
  • 点击签名与能力选项卡
  • 点击+能力按钮
  • 选择后台模式选项
  • 通过勾选复选框启用 位置更新

Xcode Capabilities

2. 在您的 Info.plist 文件中,添加以下键值对

  • NSLocationAlwaysAndWhenInUseUsageDescription 也称为 隐私 - 总是和在使用时位置用途描述 这是一个可以接受字符串描述的键,iOS 在请求用户的位置权限时使用。

  • NSLocationWhenInUseUsageDescription 也称为 隐私 - 在使用时位置用途描述 这是一个可以接受字符串描述的键,iOS 在请求用户的位置权限时使用。

  • UIBackgroundModes 也称为 所需的后台模式 这是一个可以接受项目数组的键。它应包括 location 也称为 App 注册位置更新 项以启用后台位置监控。

仅限 iOS 11:如果您的应用程序针对 iOS 11,那么除了上述提到的 3 个 Info.plist 键外,还需要以下键。如果您的应用程序目标是 iOS 12 或更高版本,则不需要以下内容

  • NSLocationAlwaysUsageDescription 也称为 隐私 - 总是位置用途描述 这是一个可以接受字符串描述的键,iOS 在请求用户的位置权限时使用。仅适用于 iOS 11。

以下是一个 Examples 所有 Info.plist 键的源代码示例 -

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>App needs your location to provide enhanced features.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>App needs your location to provide enhanced features.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>App needs your location to provide enhanced features.</string>
<key>UIBackgroundModes</key>
<array>
  <string>location</string>
  <string>remote-notification</string>
  <string>fetch</string>
  <string>processing</string>
</array>

Xcode Info.plist

3. 在您的 AppDelegate 文件中,导入 CleverTapGeofence 模块

// Swift
import CleverTapGeofence

// Objective-C
@import CleverTapGeofence;

4. 在您的 AppDelegate 的 application:didFinishLaunchingWithOptions: 函数中,添加以下代码片段。确保在 CleverTap 主 SDK 初始化之后进行 Geofence SDK 初始化。

// Swift
CleverTapGeofence.monitor.start(didFinishLaunchingWithOptions: launchOptions)

// Objective-C
[[CleverTapGeofence monitor] startWithDidFinishLaunchingWithOptions:launchOptions];

5. CleverTap Geofence SDK 需要从用户那里获取位置权限以提供地理围栏功能。应用程序应在适当的时间请求位置权限。一旦 CleverTap Geofence SDK 检测到用户已授权位置权限,该模块才会开始执行其功能。

iOS 14 更新:如果用户已选择 accuracyAuthorization 设置中的 reducedAccuracy 选项,则由于应用程序无法可靠地利用 Core Location 的区域监控 API,CleverTap Geofence 将无法按预期工作。

以下是一个应用程序如何请求位置权限的示例

// Swift
let locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()

// Objective-C 
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];

Xcode Start Geofence Snippet

📖 定制

您可以通过遵循 定制文档 进一步 定制 您的 CleverTap Geofence 集成。

𝌡 示例用法

🆕 更新日志

参阅CleverTap Geofence SDK 更新日志

🤝 帮助和问题

如果您有任何问题或疑虑,您可以从 CleverTap 控制面板联系 CleverTap 支持团队。

📄 许可证

CleverTap Geofence 使用 MIT 许可,如LICENSE 文件所示。