Pulse Insights iOS SDK
安装
要安装Pulse Insights到您的应用程序,请遵循以下步骤
版本2.0或更高
如果您安装了1.0.8或更早版本,请通过卸载流程进行处理
- 在
Podfile
中添加以下行
pod 'PulseInsights'
- 执行
pod install
命令以下载并设置SDK - 找到生成的
.xcworkspace
,并在Xcode中打开它
版本1.0.8或更早
- 在Xcode中打开项目导航器,将.framework包拖入您的项目
- 在Xcode中打开项目编辑器,并选择您的应用程序目标
- 转到“通用”选项卡,找到“嵌入式二进制”部分,添加您在导航器中添加的框架项目
请注意,该库最早支持的部署目标为iOS 9.0。
升级
要升级库,只需用新版本覆盖.framework包。
使用
1. 初始化
首先,在AppDelegate中配置共享的PulseInsights对象。您需要执行以下操作
- 包含必要的头文件。
- 在didFinishLaunchingWithOptions中设置PulseInsights对象。
- 将YOUR_ACCOUNT_ID替换为您自己的PulseInsights ID,例如PI-12345678。
首先在AppDelegate
中添加PulseInsights
import PulseInsights
然后,覆盖didFinishLaunchingWithOptions
方法
// Optional: set enableDebugMode to true for debug information.
let pi:PulseInsights = PulseInsights(YOUR_ACCOUNT_ID, enableDebugMode:[Bool value])
2. 视图跟踪
PulseInsights允许将调查定位到指定的屏幕名称。为了使SDK知道当前的屏幕名称,您可以使用以下方法通知它当前屏幕名称的变化
PulseInsights.getInstance.setViewName(viewName:String,
controller:UIViewController)
例如,您可以在UIViewController子类中覆盖viewDidAppear函数
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
PulseInsights.getInstance.setViewName("MainView", controller: self)
}
3. 调查轮询
PulseInsights SDK将根据您可以在下面覆盖的频率自动定期获取匹配各种定位条件的调查
PulseInsights.getInstance.setScanFrequency(setFrequencyInSecond :NSInteger)
如果您想手动获取新的调查,您也可以使用该方法
PulseInsights.getInstance.serve()
4. 渲染特定调查
您也可以通过ID手动触发调查
PulseInsights.getInstance.present(surveyID:String)
5. 内联调查
内联调查将在应用程序内容内部渲染,而不是覆盖应用程序内容。
为了集成内联调查,您可以通过分配标识符并将其插入到视图中来程序化创建InlineSurveyView
对象
var inlineSurveyView:InlineSurveyView?
inlineSurveyView = InlineSurveyView(identifier: String)
self.view.addSubview(inlineSurveyView)
如果您将InlineSurveyView
与nib/xib集成,您可以使用setIdentifier
方法分配跟踪标识符
override func viewDidLoad() {
super.viewDidLoad()
inlineSurveyView?.setIdentifier(className: String) // assume the inlineSurveyView have been initialized
}
以下是从xib分配内联视图标识符的另一个示例
@IBOutlet weak var inlineXibView: InlineSurveyView! {
didSet {
inlineXibView?.setIdentifier("InlineXib")
}
}
如果您愿意,可以使用以下截图所示的nib布局设置标识符。您可以从Xcode界面找到Identifier
属性
6. 调查渲染
您可以使用以下方法暂停和恢复调查渲染功能
PulseInsights.getInstance.switchSurveyScan(boolean enable);
并使用以下方法检查当前配置
- true:调查渲染功能已启用
- false:调查渲染功能已暂停
var renderingConfig: Bool = PulseInsights.getInstance.isSurveyScanWorking();
还可以从 Pulse Insights 库初始化时暂停调查渲染。
let pi:PulseInsights = PulseInsights(YOUR_ACCOUNT_ID, automaticStart: ${Bool value})
7. 客户端密钥
可以使用此方法设置客户端密钥。
PulseInsights.getInstance.setClientKey(_ clientId: String )
可以使用此方法检索已配置的客户端密钥。
let getKey: String = PulseInsights.getInstance.getClientKey()
8. 预览模式
可以通过以下方式启用/禁用预览模式。
Shaking the device more than 10-times in 3-seconds
可以通过此方法以编程方式启用/禁用预览模式。
PulseInsights.getInstance.setPreviewMode(_ enable: Bool)
还可以从 Pulse Insights 库初始化时设置预览模式。
let pi:PulseInsights = PulseInsights(_ accountID:String, enableDebugMode:Bool = false, previewMode:Bool = false)
要检查预览模式的状态,请使用此方法。
let isPreviewModeOn: Bool = PulseInsights.getInstance.isPreviewModeOn()
9. 回调
如果您想了解当前设备是否已回答调查,可以使用此方法。
let isSurveyAnswered: Bool = PulseInsights.getInstance.checkSurveyAnswered(_ surveyId: String )
也可以配置一个回调,在回答调查时执行。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
PulseInsights.getInstance.setSurveyAnsweredListener(self)
}
}
extension ViewController: SurveyAnsweredListener {
func onAnswered(_ answerId: String) {
}
}
10. 上下文数据
您可以将上下文数据与调查结果一起保存,或使用 customData
配置属性进行精确的定向调查,例如。
let pi:PulseInsights = PulseInsights(YOUR_ACCOUNT_ID, customData: ["gender": "male", "age": "32", "locale": "en-US"])
11. 设备数据
如果您想设置将随调查结果保存的设备数据,可以使用以下方法的 setDeviceData
。
PulseInsights.getInstance.setDeviceData(dictData:[String: String]())
setDeviceData
可随时调用。它将触发单独的网络请求以保存数据。
12. 高级用法
默认主机是 "survey.pulseinsights.com"。如果您想针对预发布环境或其他环境,可以覆盖默认主机。
PulseInsights.getInstance.setHost(hostName:String)
可以开启和关闭调试模式。
PulseInsights.getInstance.setDebugMode(enable:Bool)
PulseInsights 为给定设备创建一个唯一的 UDID 以跟踪。如果您想重置此 UDID,可以调用以下方法。
PulseInsights.getInstance.resetUdid()
如果要手动配置视图控制器,可以调用以下方法。
PulseInsights.getInstance.setViewController(ontroller: UIViewController)
获取已配置的视图控制器对象。
let viewController: UIViewController = PulseInsights.getInstance.getViewController()
卸载
删除 2.0 或更高版本
- 从您的
Podfile
中删除以下语句
pod 'PulseInsights'
- 执行
pod install
,以便删除 SDK
删除 1.0.8 或更低版本
要从项目中删除库
- 在 XCode 中打开 项目编辑器,并选择您的应用目标
- 进入 通用 和 构建阶段,移除所有找到的 PulseInsights.framework 项目
- 返回到应用程序的 项目导航器,移除 PulseInsights.framework 项目