IBM Cloud Mobile Services - AppLaunch iOS Swift 客户端 SDK
这个 Swift SDK 为 IBM Cloud 服务上的应用启动提供了库,用于开发者构建 iOS 设备上的移动应用程序。
在 IBM Cloud 服务中进行应用启动,让开发者能够通过控制 App 功能的可达性和发布,同时衡量定义的指标来构建引人入胜的应用程序。
在开始之前,请确保查看IBM Cloud App Launch 服务文档。
构建状态
主干 | 开发 |
---|---|
内容
设置应用启动服务
创建服务
创建功能
创建受众
创建参与
先决条件
- iOS 10+
- Xcode 9
- Swift 3.2 - 4
- Cocoapods或Carthage
安装
IBM Cloud Mobile服务的Swift SDK通过Cocoapods和Carthage提供。
Cocoapods
要安装AppLaunch使用Cocoapods,将它添加到Podfile中
use_frameworks!
target 'MyApp' do
platform :ios, '9.0'
pod 'IBMAppLaunch'
pod 'BMSCore', '~> 2.0'
pod 'SwiftyJSON'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.2'
end
end
end
在终端中,进入你的项目文件夹,使用以下命令安装依赖
pod install
Swift 3.2
运行pod install命令之前,请确保使用Cocoapods版本1.1.0.beta.1。
使用Swift 3.2构建的应用程序可能在Xcode 9中打开项目时收到“转换为当前Swift语法?”的消息,请确保不要将AppLaunch或BMSCore转换为当前语法。
这将会安装您的依赖并创建一个新的Xcode工作空间。 注意:始终打开新创建的Xcode工作空间,而不是现有xcode项目文件
MyApp.xcworkspace
Carthage(即将推出)
将AppLaunch添加到Cartfile,以便使用Carthage进行安装。
github "ibm-bluemix-mobile-services/bms-clientsdk-swift-applaunch"
运行carthage update命令。构建完成后,将AppLaunch.framework
和BMSCore.framework
拖到您的Xcode项目中。
完成集成,请按照这里的说明操作。
启用iOS应用程序使用IBM App Launch
在你的代码中导入应用启动SDK。
import IBMAppLaunch
初始化AppLaunch SDK
1. 构建配置对象
let config = AppLaunchConfig.Builder().cacheExpiration(30).eventFlushInterval(60).fetchPolicy(.REFRESH_ON_EXPIRY).build()
The AppLaunchConfig构建器用于自定义以下内容
-
eventFlushInterval
: 设置/决定事件发送到服务器的时间间隔。默认值是30分钟。 -
cacheExpiration
: 设置/决定动作有效的持续时间。默认值是30分钟。注意 : 此参数仅在将
fetchPolicy
设置为RefreshPolicy.REFRESH_ON_EXPIRY
或RefreshPolicy.BACKGROUND_REFRESH
时有效。 -
fetchPolicy
: 此参数决定从服务器获取动作的频率。值可以是以下之一-
RefreshPolicy.REFRESH_ON_EVERY_START
-
RefreshPolicy.REFRESH_ON_EXPIRY
-
RefreshPolicy.BACKGROUND_REFRESH
默认值是
RefreshPolicy.REFRESH_ON_EVERY_START
。 -
deviceId
:此参数必须是唯一的。如果没有指定,则由SDK使用默认deviceID生成机制。注意:不要依赖于deviceID生成机制的默认实现,因为它不能保证是唯一的。
2. 构建用户对象
let user = AppLaunchUser.Builder(userId: "vittal").custom(key: "email", value: "[email protected]").build()
The AppLaunchUser构建器用于提供以下信息
-
userId
:要注册的用户 -
custom
:可用于传递任何可选的用户自定义属性。
3. 初始化应用程序启动SDK
AppLaunch.sharedInstance.initialize(region: .US_SOUTH, appId: "appGUID", clientSecret: "clientSecret", config: AppLaunchConfig, user: AppLaunchUser, completionHandler: AppLaunchCompletionHandler)
其中region
参数指定了应用程序托管的位置。您可以使用以下任何一个值
ICRegion.US_SOUTH
ICRegion.UNITED_KINGDOM
ICRegion.SYDNEY
ICRegion.US_SOUTH_STAGING
ICRegion.UNITED_KINGDOM_STAGING
appGUID
是应用程序启动应用程序GUID值,而clientSecret
是从服务控制台获取的应用程序启动客户端密钥值。
AppLaunchCompletionHandler
是完成处理器,用于在发生成功和失败事件时进行通知。
功能开关
-
使用
AppLaunch.sharedInstance.isFeatureEnabled(featureCode: "feature code")
来检查应用程序是否启用了该功能。 -
使用
AppLaunch.sharedInstance.getPropertyofFeature(featureCode: "feature code", propertyCode: "property code")
来获取功能中特定属性的值。
注意:如果在使用之前调用isFeatureEnabled
或getPropertyofFeature
之前调用initialize
API,则上述两个API会引发applaunchNotIntialized
错误。
指标
要向服务器发送指标,请使用AppLaunch.sharedInstance.sendMetrics()
API。此API调用将指标信息发送到服务器。
AppLaunch.sharedInstance.sendMetrics(code: ["metricCodes"])
注意:如果在调用sendMetrics
之前调用initialize
API,则上述API会引发applaunchNotIntialized
错误。
应用内消息
要显示应用内消息,请调用以下API。
AppLaunch.sharedInstance.displayInAppMessages()
销毁
此方法将用户从AppLaunch服务中注销,并清除缓存。
AppLaunch.sharedInstance.destroy(completionHandler: AppLaunchCompletionHandler)
样例和视频
- 样品请访问 - Github Sample
了解更多
- 访问 IBM Cloud 开发者社区。