Flutter用户反馈插件zonkafeedback_sdk的使用
Flutter用户反馈插件zonkafeedback_sdk的使用
Zonka Feedback Flutter SDK
Zonka Feedback Flutter SDK需要以下条件:
- Zonka Feedback账户:一个活跃的Zonka Feedback账户。
- SDK Token:获取你想要实现的调查的SDK令牌。
- 创建一个Zonka Feedback账户。
- 创建一个新的调查,包含所需的问题。
- 导航到“分发”菜单 → “内嵌应用”标签。
- 启用开关以查看你的SDK令牌。
以下是将SDK集成到应用程序中的步骤:
- 学习更多关于创建调查的信息,请访问Zonka Feedback帮助文档。
最小要求
- Flutter:版本 3.0.0 或更高。
- Android:
- CompileSdk 版本:34 或更高。
- Android Gradle 插件:8.1.0 或更高。
- iOS:iOS 14 或更高。
安装
在您的 pubspec.yaml
文件中添加 Zonka Feedback SDK 作为依赖项:
dependencies:
zonkafeedback_sdk: <latest_version>
配置
iOS配置
在您的 Info.plist
文件中添加以下片段:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
初始化
在您的应用程序主文件(例如 lib/main.dart
)中初始化 SDK:
import 'package:zonkafeedback_sdk/zonkafeedback_sdk.dart';
class _ZonkaFeedBackSurveyState extends State<ZonkaFeedBackSurvey> with WidgetsBindingObserver {
[@override](/user/override)
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
ZFSurvey().init(
token: '{{SDK_TOKEN}}', // 替换为您的SDK令牌
zfRegion: '{{REGION}}', // 选项:US, EU, IN
context: context,
displayType: 'popup', // 显示类型:popup或slide-up
displayHeight: 1, // 显示高度,默认值为1
);
}
[@override](/user/override)
void didChangeAppLifecycleState(AppLifecycleState state) {
ZFSurvey().sendAppLifecycleState(state);
super.didChangeAppLifecycleState(state);
}
}
调查显示配置选项
要配置调查的显示类型,请使用以下选项与 displayType
:
- popup:在屏幕中心显示调查弹窗。
- slide-up:显示调查为底部滑出窗口。
要配置调查的显示高度,请传递值给 displayHeight
:
值应在 1 到 2 之间。如果没有传递,则默认值为 1。
设置
要配置并启动调查在您的应用程序中:
import 'package:zonkafeedback_sdk/zonkafeedback_sdk.dart';
ZFSurvey().startSurvey();
可选参数
- 发送设备详情 发送设备详情(操作系统、版本、IP地址、设备类型)与响应一起。默认启用。
ZFSurvey().sendDeviceDetails(true);
- 发送自定义属性 添加额外数据(例如屏幕名称、订单ID)到响应。
Map<String, String> properties = {
'property1': 'value1',
'property2': 'value2',
};
ZFSurvey().sendCustomAttributes(properties);
认证登录访客
通过传递用户的详细信息(姓名、电子邮件、手机号码或唯一ID)来识别用户:
Map<String, dynamic> properties = {
'contact_name': 'Robin James',
'contact_email': 'robin@example.com',
'contact_uniqueId': '1XJ2',
'contact_mobile': '+14234XXXX',
};
ZFSurvey().userInfo(properties);
清除访客属性
清除退出时的数据:
ZFSurvey().clear();
示例代码
import 'package:flutter/material.dart';
import 'package:zonkafeedback_sdk/zonkafeedback_sdk.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: ZonkaFeedBackSurvey(),
);
}
}
class ZonkaFeedBackSurvey extends StatefulWidget {
const ZonkaFeedBackSurvey({super.key});
[@override](/user/override)
State<ZonkaFeedBackSurvey> createState() => _ZonkaFeedBackSurveyState();
}
class _ZonkaFeedBackSurveyState extends State<ZonkaFeedBackSurvey>
with WidgetsBindingObserver {
[@override](/user/override)
void initState() {
ZFSurvey().init(
token: '6M1Sol',
zfRegion: 'IN',
context: context,
displayType: 'popup',
displayHeight: 1.5);
WidgetsBinding.instance.addObserver(this);
super.initState();
}
[@override](/user/override)
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
[@override](/user/override)
void didChangeAppLifecycleState(AppLifecycleState state) {
ZFSurvey().sendAppLifecycleState(state);
super.didChangeAppLifecycleState(state);
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
alignment: Alignment.center,
child: ElevatedButton(
onPressed: () {
Map<String, dynamic> properties = {
'contact_name': 'Robin James',
'contact_email': 'manavgarg@example.com',
'contact_uniqueId': 'fhebfkebd',
};
ZFSurvey()
.sendDeviceDetails(true)
.sendCustomAttributes(properties)
.startSurvey();
},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.blue,
),
child: const Text(
'START SURVEY',
style: TextStyle(color: Colors.white),
),
),
),
SizedBox(
height: 20,
),
Container(
alignment: Alignment.center,
child: ElevatedButton(
onPressed: () {
ZFSurvey().clear();
},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.blue,
),
child: const Text(
'CLEAR VALUES',
style: TextStyle(color: Colors.white),
),
),
),
],
),
);
}
}
更多关于Flutter用户反馈插件zonkafeedback_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter用户反馈插件zonkafeedback_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中集成和使用 zonkafeedback_sdk
插件的示例代码案例。这个插件通常用于收集用户的反馈。
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 zonkafeedback_sdk
依赖:
dependencies:
flutter:
sdk: flutter
zonkafeedback_sdk: ^最新版本号 # 请替换为实际的最新版本号
然后运行 flutter pub get
来获取依赖。
2. 初始化插件
在你的 Flutter 应用的入口文件(通常是 main.dart
)中,你需要初始化 zonkafeedback_sdk
。你需要提供你的 ZonkaFeedback 项目的 API Key。
import 'package:flutter/material.dart';
import 'package:zonkafeedback_sdk/zonkafeedback_sdk.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 ZonkaFeedback SDK
ZonkaFeedback.instance.init(
apiKey: '你的API_KEY', // 替换为你的实际API Key
environment: 'production', // 或 'development'
user: User(
userId: '用户ID', // 替换为实际用户ID,可以是匿名ID或真实用户ID
email: '用户邮箱', // 可选
name: '用户名', // 可选
),
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Demo Home Page'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
// 打开反馈页面
ZonkaFeedback.instance.showFeedbackForm();
},
child: Text('提供反馈'),
),
),
);
}
}
3. 用户模型(User)
在上面的代码中,我们使用了 User
模型来初始化用户信息。这个模型通常包含以下字段:
class User {
final String userId;
final String? email;
final String? name;
User({
required this.userId,
this.email,
this.name,
});
}
注意:实际使用时,User
类是由 zonkafeedback_sdk
插件提供的,这里只是为了说明其结构。
4. 显示反馈表单
在上面的 MyHomePage
类中,我们创建了一个按钮,当用户点击该按钮时,会显示反馈表单。这是通过调用 ZonkaFeedback.instance.showFeedbackForm()
方法实现的。
5. 处理反馈提交(可选)
你还可以监听反馈提交事件,以便在用户提交反馈后执行一些操作。这通常涉及到设置回调或监听器。具体实现方式可能会根据插件版本有所不同,请参考插件的官方文档。
注意事项
- 确保你已经正确设置了 ZonkaFeedback 项目,并获取了有效的 API Key。
- 在生产环境中,请确保正确处理用户隐私和数据安全。
- 插件的具体方法和类可能会随着版本更新而变化,请参考最新的官方文档。
这个示例展示了如何在 Flutter 应用中集成和使用 zonkafeedback_sdk
插件来收集用户反馈。希望这对你有所帮助!