Flutter用户调研与反馈插件survicate_flutter_sdk的使用
Flutter用户调研与反馈插件survicate_flutter_sdk的使用
这是Survicate为Flutter提供的SDK。
欢迎您贡献代码。
支持的版本
Survicate的移动SDK支持以下版本:
- Android 至少需要4.4版本
- iOS 至少需要10版本
要使用此SDK,您需要在survicate.com注册一个账户。免费注册后,可以在Tracking Code部分找到您的工作区密钥。
开始使用
请参阅Survicate的文档,以获取有关配置和使用Survicate的详细说明。
要使用此插件,需要在pubspec.yaml
文件中添加survicate_flutter_sdk
依赖。
dependencies:
survicate_flutter_sdk: ^x.y.z # 替换为最新版本号
然后导入package:survicate_flutter_sdk/survicate_flutter_sdk.dart
并实例化SurvicateFlutterSdk
。
Android集成
在AndroidManifest.xml
文件中配置您的工作区密钥。创建meta-data: com.survicate.surveys.workspaceKey
。
<application
android:name=".MyApp"
>
<!-- ... -->
<meta-data android:name="com.survicate.surveys.workspaceKey" android:value="YOUR_WORKSPACE_KEY"/>
</application>
iOS集成
将工作区密钥添加到Info.plist
文件中。创建Survicate
字典并在Survicate
字典中定义WorkspaceKey
字符串。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
[...]
<key>Survicate</key>
<dict>
<key>WorkspaceKey</key>
<string>YOUR_WORKSPACE_KEY</string>
</dict>
[...]
</dict>
</plist>
示例
有一个示例应用展示了如何使用该插件。
贡献
我们鼓励社区成员提交拉取请求和其他贡献。请查看我们的贡献指南,了解如何为该SDK做出贡献。
关于Survicate
Survicate允许您以简单、易用且快速的方式向您的用户发送定向调查。在Survicate面板中,您可以选择用户必须满足的条件,以便在不同方式下显示调查。符合条件的用户将自动看到调查。您可以设置条件为自定义用户属性或您创建的用户事件。
可用条件包括:
- 屏幕
- 事件
- 用户属性
- 语言
- 已知用户
- 操作系统
确保列出应用程序中描述的所有屏幕和事件。一旦完成这些步骤,您或任何负责创建和管理调查的人将能够从Survicate面板触发它们,而无需更新应用程序。
完整示例代码
import 'package:flutter/material.dart';
import 'package:survicate_flutter_sdk/models/survicate_answer_model.dart';
import 'package:survicate_flutter_sdk/models/user_traits_model.dart';
import 'package:survicate_flutter_sdk/survicate_flutter_sdk.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
SurvicateFlutterSdk survicateFlutterSdk = SurvicateFlutterSdk();
String? surveyIdDisplayed;
String? surveyIdAnswered;
num? questionIdAnswered;
SurvicateAnswerModel? answer;
String? surveyIdClosed;
String? surveyIdCompleted;
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Survicate Flutter SDK 示例应用'),
),
body: SingleChildScrollView(
padding: EdgeInsets.all(16.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
ElevatedButton(
onPressed: () {
survicateFlutterSdk.invokeEvent('SURVEY');
},
child: Text('触发事件 SURVEY'),
),
SizedBox(
height: 5.0,
),
ElevatedButton(
onPressed: () {
survicateFlutterSdk.enterScreen('SCREEN');
},
child: Text('进入屏幕 SCREEN'),
),
ElevatedButton(
onPressed: () {
survicateFlutterSdk.leaveScreen('SCREEN');
},
child: Text('离开屏幕 SCREEN'),
),
SizedBox(
height: 5.0,
),
ElevatedButton(
onPressed: () {
survicateFlutterSdk.setUserTraits(
UserTraitsModel(userId: '1', firstName: 'USER'));
},
child: Text('设置用户ID为 1 和 名字为 USER'),
),
SizedBox(
height: 5.0,
),
ElevatedButton(
onPressed: () {
setState(() {
surveyIdDisplayed = null;
surveyIdAnswered = null;
questionIdAnswered = null;
answer = null;
surveyIdClosed = null;
surveyIdCompleted = null;
});
survicateFlutterSdk.reset();
},
child: Text('重置'),
),
SizedBox(
height: 5.0,
),
ElevatedButton(
onPressed: () {
setState(() {
surveyIdDisplayed = null;
surveyIdAnswered = null;
questionIdAnswered = null;
answer = null;
surveyIdClosed = null;
surveyIdCompleted = null;
});
survicateFlutterSdk.registerSurveyListeners(
callbackSurveyDisplayedListener: (surveyId) {
setState(() {
surveyIdDisplayed = surveyId;
});
}, callbackQuestionAnsweredListener:
(surveyId, questionId, answer) {
setState(() {
surveyIdAnswered = surveyId;
questionIdAnswered = questionId;
this.answer = answer;
});
}, callbackSurveyClosedListener: (surveyId) {
setState(() {
surveyIdClosed = surveyId;
});
}, callbackSurveyCompletedListener: (surveyId) {
setState(() {
surveyIdCompleted = surveyId;
});
});
},
child: Text('注册调查活动监听器'),
),
SizedBox(
height: 5.0,
),
ElevatedButton(
onPressed: () {
setState(() {
surveyIdDisplayed = null;
surveyIdAnswered = null;
questionIdAnswered = null;
answer = null;
surveyIdClosed = null;
surveyIdCompleted = null;
});
survicateFlutterSdk.unregisterSurveyListeners();
},
child: Text('注销调查活动监听器'),
),
SizedBox(
height: 5.0,
),
surveyIdDisplayed != null
? Text('最后显示的调查ID = $surveyIdDisplayed')
: SizedBox(),
surveyIdDisplayed != null
? SizedBox(
height: 5.0,
)
: SizedBox(),
questionIdAnswered != null
? Text(
'最后回答的问题ID = $questionIdAnswered 来自调查ID = $surveyIdAnswered, 回答类型 ${answer?.type}')
: SizedBox(),
questionIdAnswered != null
? SizedBox(
height: 5.0,
)
: SizedBox(),
surveyIdClosed != null
? Text('最后关闭的调查ID = $surveyIdClosed')
: SizedBox(),
surveyIdClosed != null
? SizedBox(
height: 5.0,
)
: SizedBox(),
surveyIdCompleted != null
? Text('最后完成的调查ID = $surveyIdCompleted')
: SizedBox(),
surveyIdCompleted != null
? SizedBox(
height: 5.0,
)
: SizedBox(),
],
),
)),
);
}
}
更多关于Flutter用户调研与反馈插件survicate_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter用户调研与反馈插件survicate_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用survicate_flutter_sdk
插件的示例代码。这个示例将展示如何集成该插件,并触发一个用户调研。
1. 添加依赖
首先,在你的pubspec.yaml
文件中添加survicate_flutter_sdk
依赖:
dependencies:
flutter:
sdk: flutter
survicate_flutter_sdk: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
2. 初始化插件
在你的Flutter应用的入口文件(通常是main.dart
)中,初始化SurvicateFlutterSdk
。
import 'package:flutter/material.dart';
import 'package:survicate_flutter_sdk/survicate_flutter_sdk.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化SurvicateFlutterSdk
SurvicateFlutterSdk.instance.init(
accountId: '你的Survicate账户ID', // 请替换为你的Survicate账户ID
projectId: '你的Survicate项目ID', // 请替换为你的Survicate项目ID
visitorId: '用户唯一标识符', // 可选,用于标识特定用户,如用户ID
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
3. 触发用户调研
在你的应用中的适当位置(例如按钮点击事件)触发用户调研。
import 'package:flutter/material.dart';
import 'package:survicate_flutter_sdk/survicate_flutter_sdk.dart';
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Survicate Flutter SDK Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
// 触发用户调研
SurvicateFlutterSdk.instance.showSurvey(surveyId: '你的调研ID'); // 请替换为你的调研ID
},
child: Text('显示用户调研'),
),
),
);
}
}
4. 处理调研结果(可选)
如果你希望在用户完成调研后处理结果,可以使用回调方法。注意,具体的回调实现可能会根据Survicate的SDK版本有所不同,请参考官方文档以获取最新信息。
SurvicateFlutterSdk.instance.showSurvey(
surveyId: '你的调研ID',
onSuccess: (result) {
// 用户完成调研后的处理逻辑
print('调研结果: $result');
},
onError: (error) {
// 显示调研时发生错误的处理逻辑
print('调研错误: $error');
},
);
注意事项
- 确保你已经正确设置了Survicate账户和项目,并且获取了必要的ID。
- 根据你的应用需求,调整用户标识符(
visitorId
)和调研ID(surveyId
)。 - 查阅最新的
survicate_flutter_sdk
文档,以获取关于配置和API的最新信息。
这个示例展示了如何在Flutter项目中集成和使用survicate_flutter_sdk
插件来触发用户调研。希望这对你有所帮助!