Flutter互动功能增强插件engage的使用
Flutter互动功能增强插件engage的使用
Engage是一款帮助你通过电子邮件、短信和应用内消息传递个性化客户信息和营销自动化的工具。该Flutter插件使你可以轻松地识别用户、同步用户数据(属性、事件和设备令牌)到Engage仪表板,并向设备发送应用内消息。
功能
- 识别用户
- 更新用户属性
- 跟踪用户事件
- 跟踪设备令牌
开始使用
- 在Engage官网创建一个Engage账户并设置账户以获取你的公共API密钥。
- 了解如何将用户数据连接到Engage。
- 将Engage Flutter插件添加到你的项目中。
flutter pub add engage
初始化插件
首先,导入package:engage/engage.dart
并初始化插件。
import 'package:flutter/material.dart';
import 'package:engage/engage.dart';
void main() async {
// 在初始化Engage插件之前运行此代码
WidgetsFlutterBinding.ensureInitialized();
// 初始化插件
await Engage.init('your_public_key_here');
runApp(MyApp());
}
识别用户和更新属性
插件使用用户的唯一标识符(通常是用户表中的id字段)来更新用户属性、跟踪事件和其他用户相关操作。以下是如何更新一组用户属性的示例代码:
Engage.addAttributes('uniqueUserId', {
'plan': 'Pro'
});
addAttributes
方法会在用户资料中添加属性(如果不存在)或更新已存在的属性。你应该在应用中用户属性更新的地方调用此方法。例如,在成功登录后添加last_login
日期属性,你需要在代码中调用addAttributes
。
void logIn() async {
// ...
Engage.addAttributes('user_id_1234', {
'last_login': DateTime.now()
});
}
为了更好地识别用户(而不仅仅是ID),我们建议你跟踪一些额外的用户属性。这可以是任何东西,取决于你在产品中请求的用户属性。例如:location
、gender
、plan
。这些是我们已经在Engage中标准化的一些属性:first_name
、last_name
、email
、number
(用户电话号码)、tz
(用户时区)。我们称它们为标准属性。但是,记住你可以跟踪其他非标准属性。
你只需要跟踪一次属性,除非它们发生变化并使用addAttributes
方法更新它们。我们称之为“识别”用户。
// 这会将用户ID user_id_1234映射到Opeyemi O.
Engage.identify('user_id_1234', {
'first_name': 'Opeyemi',
'last_name': 'O.'
});
我们建议你在两个地方执行此操作:
- 登录后 - 这有助于识别已经向Engage发送数据但尚未被识别的老用户。
- 注册时 - 这有助于识别新用户。
默认情况下,Engage将新识别用户的注册日期设置为当前时间戳。可以通过created_at
参数更改此设置。
Engage.identify('user_id_1234', {
'first_name': 'Opeyemi',
'last_name': 'O.',
'created_at': '2021-09-14'
});
匿名ID
有时,你想在识别用户之前跟踪用户事件。例如,用户可能下载了你的应用并探索了一些可用的功能,然后才注册并获得一个唯一的ID。我们称这种用户为匿名用户。你可以使用任何随机ID(我们称为匿名ID)来为匿名用户跟踪事件,并在识别时将其与实际用户合并。
如果需要在用户识别前跟踪事件:
// 导入 'package:uuid/uuid.dart';
// 生成一个随机唯一ID
var anonId = uuid.v4();
Engage.trackEvents(anonId, 'Launched app');
// ... 在其他地方,使用相同的ID
Engage.trackEvents(anonId, 'Opened gallery');
一旦用户被识别:
void logIn() async {
// ...
// User user = User.fromJson(result);
// 将匿名ID与已识别用户合并
Engage.merge(anonId, user.id);
}
跟踪事件
要跟踪用户事件,使用trackEvents
方法。以下是其最基本的形式:
Engage.trackEvents('user_id_1234', 'Sign up');
事件可以有值:
Engage.trackEvents('user_id_1234', 'Paid', 35);
Engage.trackEvents('user_id_1234', 'Clicked', 'pro_course_3');
或者具有属性:
Engage.trackEvents('user_id_1234', 'Transfer', {
'to': 'user_id_6789',
'amount': 345.50,
'deliver_on': DateTime.now()
});
默认情况下,事件的时间戳由当前时间戳标记。要使用自定义日期,可以添加日期参数。
Engage.trackEvents('user_id_1234', 'Sign up', DateTime.now());
推送通知和设置设备令牌
最后,要使用Engage进行推送通知,我们需要你将用户的设备令牌添加到他们的个人资料中。要将此信息发送给Engage,获取令牌并调用setDeviceToken
方法。(你需要安装并配置Firebase才能获取设备令牌)。我们建议你在每次应用程序启动时调用setDeviceToken
,这样如果设备令牌发生任何意外变化,它将在Engage上得到更新。
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Engage.init('your_public_key_here');
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform
);
FirebaseMessaging.instance
.getToken()
.then((String? token) {
if (token != null) {
Engage.setDeviceToken('user_id_1334', token);
}
});
runApp(MyApp());
}
要从用户的个人资料中删除设备令牌,使用logout
方法。你应该在用户注销应用程序时执行此操作,以便他们在未登录时不会继续收到推送通知。
Engage.logout()
logout
方法不带任何参数假定之前已经调用了setDeviceToken
方法。如果没有,则可以传递用户的ID和设备令牌到方法。
Engage.logout('user_id_1334', token)
更多关于Flutter互动功能增强插件engage的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter互动功能增强插件engage的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
engage
是一个用于增强 Flutter 应用互动功能的插件,它可以帮助开发者轻松实现用户互动、反馈收集、用户行为分析等功能。以下是如何使用 engage
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 engage
插件的依赖项:
dependencies:
flutter:
sdk: flutter
engage: ^1.0.0 # 请根据实际版本号填写
然后运行 flutter pub get
来安装依赖。
2. 初始化 engage
在你的 Flutter 应用中初始化 engage
插件。通常可以在 main.dart
文件中进行初始化:
import 'package:engage/engage.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 engage
await Engage.initialize(
apiKey: 'YOUR_API_KEY', // 替换为你的 API Key
appId: 'YOUR_APP_ID', // 替换为你的 App ID
);
runApp(MyApp());
}
3. 使用 engage
功能
engage
提供了多种功能来增强用户互动,以下是一些常见的使用示例:
3.1 用户反馈
你可以使用 engage
来收集用户反馈:
import 'package:engage/engage.dart';
void showFeedbackDialog() {
Engage.showFeedbackDialog(
context: context,
title: '请告诉我们您的想法',
hintText: '请描述您的体验...',
onFeedbackSubmitted: (feedback) {
print('用户反馈: $feedback');
// 处理用户反馈
},
);
}
3.2 用户行为追踪
你可以使用 engage
来追踪用户行为,例如按钮点击、页面浏览等:
import 'package:engage/engage.dart';
void trackUserAction() {
Engage.trackEvent(
eventName: 'button_click',
properties: {
'button_id': 'submit_button',
'timestamp': DateTime.now().toString(),
},
);
}
3.3 用户属性设置
你可以设置用户属性,以便更好地分析用户行为:
import 'package:engage/engage.dart';
void setUserAttributes() {
Engage.setUserAttributes(
attributes: {
'name': 'John Doe',
'email': 'john.doe@example.com',
'age': 30,
},
);
}
4. 高级功能
engage
还提供了一些高级功能,例如 A/B 测试、推送通知等。你可以根据项目需求进行集成和使用。
5. 调试与日志
在开发过程中,你可以启用调试模式来查看 engage
的日志输出:
Engage.setDebugMode(true);
6. 处理用户隐私
确保在收集用户数据时遵守相关隐私政策和法律法规。你可以在用户同意的情况下启用数据收集:
Engage.setUserConsent(consent: true);