Flutter用户邀请与奖励系统插件referral_hero_flutter的使用

发布于 1周前 作者 zlyuanteng 来自 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

1 回复

更多关于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插件,并获取用户的邀请码、分享链接以及处理邀请奖励。根据你的具体需求,你可能需要调整代码以适应你的应用逻辑。

回到顶部