Iterate for iOS
Iterate 问卷调查让您直接与应用程序用户联系,了解您如何更好地改变——从您的产品到您的应用程序体验。
运行高度定位、用户友好且符合品牌的问卷调查。您将不仅了解您的访问者在做什么,还将了解为什么。
要求
安装
Swift 包管理器 (SPM)
- 在 Xcode 中,选择 “项目” -> “包依赖项” -> 点击 "+"
- 将 "https://github.com/iteratehq/iterate-ios" 粘贴到搜索栏
- 指定版本规则并选择项目以添加库
- 按 "添加包"
Carthage
您可以使用 Carthage 依赖管理器安装 Iterate,安装 Carthage 并将以下内容添加到您的 Cartfile
github "iteratehq/iterate-ios" ~> 1.0
然后运行
$ carthage update
并按照 Carthage 说明 将框架复制到您的应用中。
CocoaPods
您可以使用 CocoaPods 依赖管理器安装 Iterate,只需安装 CocoaPods 并在 Podfile 中添加以下内容
pod 'Iterate', '~> 1.0'
然后运行
$ pod install
使用方法
在您的应用中,当响应到事件时会显示调查。事件可以是查看屏幕、点击按钮或其他用户动作。您使用 Iterate SDK 向 Iterate 发送事件,然后在您的 Iterate 仪表板上创建针对这些事件的调查。
快速入门
如果您还没有,请登录或注册Iterate账户。
- 创建一个新的调查并选择“在您的移动应用中安装”
- 转到“预览与发布”选项卡并复制您的 SDK API 密钥
- 在 AppDelegate 类中初始化 SDK
import Iterate
class AppDelegate: UIResponder, UIApplicationDelegate {
// ...
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Iterate.shared.configure(apiKey: YOUR_API_KEY)
return true
}
// ...
}
如果您正在使用 SwiftUI,您可以附加您的 App 到 AppDelegate 并使用上述方法进行初始化
@main
struct MyApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
Iterate.shared.configure(apiKey: YOUR_API_KEY)
return true
}
}
- 实现事件
以下是一个示例,展示了当用户查看活动流屏幕时触发的事件
import Iterate
class ViewController: UIViewController {
// ...
override func viewDidAppear(_ animated: Bool) {
Iterate.shared.sendEvent(name: "viewed-activity-feed")
}
// ...
}
以下是与 SwiftUI 一起使用的相同示例
struct ActivityFeed: View {
var body: some View {
NavigationView {
VStack {
// ...
}
}.onAppear {
Iterate.shared.sendEvent(name: "viewed-activity-feed")
}
}
}
- 在 Iterate 调查的目标选项卡上,设置调查以便在事件触发时显示
- 发布您的调查即可完成
🎉
预览您的调查
您可能希望在发布之前预览您的调查,以便您可以进行测试并确认一切是否正常工作。您可以使用代码或使用 自定义 URL 方案 进行预览。使用代码进行预览在初始开发阶段确认您已经正确安装了一切要简单一些。使用自定义 URL 方案在实体设备上测试以及对于那些无法访问 xcode 的人要简单一些。
使用代码
在“预览与发布”选项卡中选择“了解更多”并复制代码。
这使用了预览方法,这将确保在目标调查触发事件时返回调查。
override func viewDidAppear(_ animated: Bool) {
Iterate.shared.preview(surveyId: "YOUR_SURVEY_ID")
Iterate.shared.sendEvent(name: "viewed-activity-feed")
}
使用自定义 URL 方案
首先,确保您的应用设置了自定义 URL 方案。然后,当您的应用从应用程序 URL 方案打开时添加以下代码。
Iterate.shared.preview(url:)
方法会查找查询参数 ?iterate_preview=YOUR_SURVEY_ID
,这启用了 预览模式,允许您在事件被触发、但在为其发布的所有人之前,查看您的调查。
如果您正在使用场景,请在您的 SceneDelegate 中添加以下代码
import Iterate
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
// ...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
for context in URLContexts {
if context.url.isIteratePreviewURL {
Iterate.shared.preview(url: context.url.absoluteURL)
}
}
}
// ...
}
否则,请将其添加到您的 AppDelegate 中
import Iterate
class AppDelegate: UIResponder, UIApplicationDelegate {
// ...
func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:] ) -> Bool {
if (URLComponents(url: url, resolvingAgainstBaseURL: false)?.queryItems?.contains { $0.name == Iterate.PreviewParameter } ?? false) {
Iterate.shared.preview(url: url.absoluteURL)
}
return true
}
// ...
}
添加后,您可以在调查的“预览 & 发布”标签下扫描二维码,这将打开您的应用程序,允许在您要针对的事件被触发后预览调查。
推荐
当第一次实施 Iterate 时,我们鼓励您为所有可能目标调查的核心使用情况实施事件。例如:注册、购买、浏览 X 屏幕等。这样,您可以轻松启动针对这些事件的新的调查,而无需每次都安装新的事件。
自定义字体
您可以通过将字体名称传递给 Iterate.shared.configure
方法,在 Iterate 调查视图中使用应用程序包中可用的自定义字体,如下所示:
Iterate.shared.configure(apiKey: YOUR_API_KEY, surveyTextFontName: "Merriweather-Regular", buttonFontName: "WorkSans-Regular")
在 buttonFontName
参数中指定的字体将用于所有调查界面按钮(问题响应、上一页/下一页按钮等)。在 surveyTextFontName
中指定的字体将用于所有其他调查文本(问题提示、说明性文本等)。
支持 True Type 字体和 Open Type 字体。要查找正确的字体名称,请参阅 Apple 关于自定义字体的文档。
关联数据与用户
使用 Identify 方法,您可以轻松地为用户添加属性,这些属性可以用于将调查目标对准他们,并将信息与其未来所有的响应关联起来。
更多信息请参阅我们的帮助文章。
注意:如果你的应用程序允许用户注销,你可以调用Iterate.shared.reset()
方法在注销时清除所有存储的用户数据。
调查资格和频率
默认情况下,调查只针对每个人显示一次,用户每72小时最多只能看到1次调查(这是可配置的)。您可以了解有关资格和频率如何工作的更多信息。
故障排除
如果您有任何问题,可以去我们的帮助中心搜索答案或与我们的支持团队聊天。