👋 简介
CleverTap Geofence SDK通过使用Core Location框架为CleverTap iOS SDK提供地理位置围栏功能。本文档列出了在您的应用程序中利用CleverTap Geofence的步骤。您还可以通过使用地理位置围栏自定义文档进一步自定义CleverTap Geofence的集成。
⍗ 内容
📋 要求
以下为使用CleverTap Geofence SDK所需的内容 -
- CleverTap iOS SDK版本3.9.0或更高版本
- Swift版本5.1或更高版本
- iOS版本10.0或更高版本
- 针对iOS 14.x.x的Xcode 12
- CoreLocation iOS框架
🎉 安装
通过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
- 点击签名与能力选项卡
- 点击+能力按钮
- 选择后台模式选项
- 通过勾选复选框启用
位置更新
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>
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];
📖 定制
您可以通过遵循 定制文档 进一步 定制 您的 CleverTap Geofence 集成。
𝌡 示例用法
🆕 更新日志
参阅CleverTap Geofence SDK 更新日志。
🤝 帮助和问题
如果您有任何问题或疑虑,您可以从 CleverTap 控制面板联系 CleverTap 支持团队。
📄 许可证
CleverTap Geofence 使用 MIT 许可,如LICENSE 文件所示。