Flutter用户邀请与奖励系统插件referral_hero_flutter的使用
Flutter用户邀请与奖励系统插件referral_hero_flutter的使用
ReferralHero Flutter SDK
《ReferralHero Flutter SDK》提供了一种简单的方法来将推荐和竞赛功能集成到您的Flutter应用程序中。此SDK使您可以推荐朋友、跟踪推荐并激励用户参与。
目录
特性
- 添加和管理订阅者
- 跟踪推荐和转换事件
- 捕获分享事件
- 获取推荐和排行榜数据
- 创建和管理待处理推荐
- 确认推荐
- 跟踪有机推荐
- 获取奖励和推荐人详情
安装
在pubspec.yaml
文件中添加以下依赖:
dependencies:
referral_hero_flutter: ^0.0.4 # 使用从pub.dev获取的适当版本
然后运行:
flutter pub get
使用
初始化
要使用SDK,您需要使用API密钥和UUID进行初始化:
import 'package:referral_hero_flutter/referral_hero_flutter.dart';
final referralHeroService = ReferralHeroFlutter('your-api-key', 'your-uuid');
跟踪推荐
现在您已经实现了SDK,可以开始识别和跟踪推荐!
为此,您需要两样东西:
- 通用链接
- 您已集成的应用程序
RH SDK从设备中提取信息,例如:
final referralParams = {
'email': 'user@example.com', // 从用户处捕获
'domain': 'https://a.domain.co/', // 可选值,默认由管理员设置
'name': 'User Name', // 从用户处捕获
'referrer': 'referrerCode', // 可选值,仅在需要从用户处捕获推荐码时才必要
'uuid': 'MFcd4113d4bf', // 从RH仪表板获取
'device': await referralHeroService.deviceInfo.getDeviceType(), // 获取设备类型
'ip_address': await referralHeroService.deviceInfo.getIpAddress(), // 获取IP地址
'os_type': await referralHeroService.deviceInfo.getOperatingSystem(), // 获取操作系统类型
'screen_size': await referralHeroService.deviceInfo.getDeviceScreenSize() // 获取屏幕大小
};
屏幕尺寸格式不是RH原生格式,应解析为RH接受的格式,例如:
String transformResolution(String input) {
final dimensions = input.split('*').map((e) => e.trim()).toList();
return '${dimensions[0]} x ${dimensions[1]}';
}
有了这些信息,您应该能够添加订阅者数据,通过Get Referrer、Add Subscriber、Create Pending Referral或Track Referral方法自动识别或跟踪推荐:
void formSubmit() {
referralHeroService.addSubscriber(referralParams);
}
要进一步了解这些方法的实现,请查看公共方法部分和我们的GitHub示例项目。
方法
添加订阅者
添加新订阅者。
final subscriber = {
'email': 'test24@gmail.com',
'name': 'Test User 24',
'phone_number': '9898989896',
// 添加其他字段
};
await referralHeroService.addSubscriber(subscriber);
请求体
名称 | 类型 | 描述 |
---|---|---|
email* | String | 订阅者的电子邮件。如果电子邮件是活动的唯一标识符,则为必需 |
name | String | 订阅者的名字 |
crypto_wallet_address* | String | 订阅者的加密钱包地址。如果它是活动的唯一标识符,则为必需 |
phone_number* | String | 订阅者的电话号码。如果电话号码是活动的唯一标识符,则为必需 |
extra_field | String | 订阅者的额外字段值 |
extra_field_2 | String | 订阅者的额外字段2值 |
referrer | String | 推荐人的推荐码或电子邮件 |
lifetime_spend | Number | 订阅者的生命周期消费 |
subscribe_page_url | String | 订阅者订阅页面的URL |
landing_page_url | String | 订阅者着陆页的URL |
is_quick_add_referral | Boolean | 如果您想将推荐作为快速添加推荐,则发送True,否则False |
option_field_value | String | 订阅者的选项字段值 |
other_identifier_value* | String | 其他标识符值(如果启用其他标识符作为唯一标识符,则为必需) |
double_optin | Boolean | 如果您希望在添加之前发送验证方法,则发送True,否则False |
points | Integer | 订阅者的积分 |
crypto_wallet_provider | String | 订阅者的加密钱包提供商 |
screen_size | String | 当订阅者点击推荐链接时使用的设备屏幕大小 |
ip_address | String | 当订阅者点击推荐链接时使用的IP地址 |
device | String | 当订阅者点击推荐链接时使用的设备 |
os_type | String | 当订阅者点击推荐链接时使用的操作系统类型 |
source | String | 订阅者的来源 |
domain | String | 用于生成推荐链接的URL |
transaction_id | String | 交易的唯一ID。在跟踪购买时有用 |
conversion_category | String | 订阅者的类型。在创建报告或细分订阅者时有用 |
conversion_value | Number | 订阅者的货币转换值 |
获取订阅者详情
获取特定订阅者的详细信息。
final details = await referralHeroService.getSubscriberDetails('subscriberId');
更新订阅者
更新特定订阅者的详细信息。您可以参考“添加订阅者”部分的参数以获取可用字段。
final updates = {
'name': 'Updated Name',
// 添加其他字段
};
await referralHeroService.updateSubscriber('subscriberId', updates);
删除订阅者
删除特定订阅者。
await referralHeroService.deleteSubscriber('subscriberId');
跟踪推荐
跟踪推荐转换事件。
final referral = {
'email': 'test17@gmail.com',
'name': 'Test name updated',
// 添加其他字段
};
await referralHeroService.trackReferral(referral);
捕获分享
捕获订阅者的分享事件。
await referralHeroService.captureShare('subscriberId', 'facebook');
获取我的推荐
检索特定订阅者的所有推荐。
final referrals = await referralHeroService.getMyReferrals('subscriberId');
获取排行榜
获取活动排行榜。
final leaderboard = await referralHeroService.getLeaderboard();
创建待处理推荐
创建一个待处理推荐。
final referral = {
'email': 'pending@example.com',
'name': 'Pending User',
// 添加其他字段
};
await referralHeroService.createPendingReferral(referral);
有机跟踪推荐
跟踪有机推荐事件。
final referral = {
'email': 'organic@example.com',
'name': 'Organic User',
// 添加其他字段
};
await referralHeroService.organicTrackReferral(referral);
确认推荐
确认推荐。
await referralHeroService.confirmReferral('subscriberId');
获取推荐人
基于查询获取推荐人详情。
final query = {
'os_type': 'ios',
'device': 'iPhone',
'ip_address': '192.168.0.1',
'screen_size': '1200x1800'
};
final referrer = await referralHeroService.getReferrer(query);
获取奖励
获取特定订阅者的奖励。
final rewards = await referralHeroService.getRewards('subscriberId');
更多关于Flutter用户邀请与奖励系统插件referral_hero_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter用户邀请与奖励系统插件referral_hero_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,关于Flutter用户邀请与奖励系统插件referral_hero_flutter
的使用,下面是一个基本的代码案例来展示如何集成和使用这个插件。
首先,确保你已经在pubspec.yaml
文件中添加了referral_hero_flutter
依赖:
dependencies:
flutter:
sdk: flutter
referral_hero_flutter: ^最新版本号 # 替换为实际最新版本号
然后运行flutter pub get
来安装依赖。
接下来,展示如何在Flutter应用中集成和使用referral_hero_flutter
插件。
1. 初始化插件
在你的主应用文件(通常是main.dart
)中,初始化插件并配置必要的参数。
import 'package:flutter/material.dart';
import 'package:referral_hero_flutter/referral_hero_flutter.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化ReferralHero
ReferralHero.init(
apiKey: '你的API_KEY', // 替换为你的实际API密钥
onUserReferral: (ReferralUser user) {
// 用户成功邀请后的回调处理
print('User referred: ${user.toJson()}');
},
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
2. 获取用户的邀请码和分享链接
在你的首页或其他页面,你可以获取用户的邀请码和分享链接,并提供一个按钮让用户可以分享。
import 'package:flutter/material.dart';
import 'package:referral_hero_flutter/referral_hero_flutter.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String? referralCode;
String? referralLink;
@override
void initState() {
super.initState();
// 获取用户的邀请码和分享链接
_fetchReferralDetails();
}
Future<void> _fetchReferralDetails() async {
ReferralUser? user = await ReferralHero.getUserDetails();
if (user != null) {
setState(() {
referralCode = user.referralCode;
referralLink = user.referralLink;
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Referral System'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Your Referral Code: $referralCode'),
SizedBox(height: 20),
Text('Share this link: $referralLink'),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
// 打开分享链接(这里只是打印,实际可以调用系统分享功能)
print('Sharing link: $referralLink');
},
child: Text('Share'),
),
],
),
),
);
}
}
3. 处理邀请奖励
当用户通过邀请链接注册时,你可以在服务器端处理邀请奖励逻辑,并通过onUserReferral
回调在客户端接收通知。
// 在main.dart的ReferralHero.init部分
ReferralHero.init(
apiKey: '你的API_KEY',
onUserReferral: (ReferralUser user) {
// 处理邀请奖励,例如更新UI或存储奖励信息
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Referral Bonus'),
content: Text('You have earned a bonus for referring a user!'),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('OK'),
),
],
);
},
);
},
);
注意:这里的showDialog
仅用于演示目的,在实际应用中,你可能希望以更合适的方式通知用户,比如更新UI中的奖励余额或显示通知。
这个代码案例展示了如何在Flutter应用中集成referral_hero_flutter
插件,并获取用户的邀请码、分享链接以及处理邀请奖励。根据你的具体需求,你可能需要调整代码以适应你的应用逻辑。