Flutter功能扩展插件flourish_flutter_sdk的使用

发布于 1周前 作者 caililin 来自 Flutter

Flutter功能扩展插件flourish_flutter_sdk的使用

Flourish SDK Flutter

此Flutter插件将允许在视觉实现中与Flourish功能进行通信。

目录

开始使用

添加Flourish到你的项目

在项目的pubspec.yaml文件中,添加Flourish Flutter SDK的最新版本到依赖项中。

# pubspec.yaml

dependencies:
  flourish_flutter_sdk: ^<latest version>

SDK内部需求

要使用此SDK,你需要以下元素:

  • partnerId: 一个由Flourish提供的唯一标识符
  • secret: 一个字符串,表示一个密钥,也由Flourish提供
  • costumer_code: 一个字符串,表示你自己的标识符

此插件可以在两个不同的环境中运行:

  • staging: 在此环境中,你可以测试功能而不会影响任何真实数据
  • production: 此环境用于运行具有真实数据的应用程序

关于SDK

与我们的集成方式如下:客户端在我们的后端进行身份验证,并返回一个访问令牌,该令牌允许加载我们的webview。因此,SDK的作用是封装并帮助加载此webview。

使用SDK

1 - 初始化

重要提醒

为了正确地运行流程并展示我们的价值,需要准确地记录指标,当打开您的应用时(例如启动或主页屏幕),必须初始化我们的SDK。最重要的是,它不应与打开我们的模块同时初始化。

首先,必须提供变量partnerIdsecretenvlanguagecustomerCode来初始化SDK。

Flourish flourish = await Flourish.create(
  partnerId: 'HERE_YOU_WILL_USE_YOUR_PARTNER_ID',
  secret: 'HERE_YOU_WILL_USE_YOUR_SECRET',
  env: Environment.staging,
  language: Language.english,
  customerCode: 'HERE_YOU_WILL_USE_YOUR_CUSTOMER_CODE',
  trackingId: 'HERE_YOU_WILL_USE_YOUR_GOOGLE_ANALYTICS_KEY_THIS_IS_NOT_REQUIRED'
);

trackingId变量用于如果您想传递Google Analytics密钥以便监控用户对我们平台的使用情况。

2 - 打开Flourish模块

最后,我们需要调用home()方法。

flourish.home();

事件

你还可以注册一些事件以了解我们平台内发生的事情。

你可以监听已映射的特定事件,未映射的事件,或者如果你更喜欢,可以监听所有事件。

监听我们的映射事件

我们有一些已经映射的事件,你可以单独监听这些事件。

例如,如果你需要知道何时完成Trivia功能,可以监听TriviaGameFinishedEvent事件。

flourish.onTriviaGameFinishedEvent((TriviaGameFinishedEvent response) {
  print("事件名称: ${response.name}");
  print("事件数据: ${jsonEncode(response.data.toJson())}");
});

你可以在这里找到所有映射的事件。

监听我们的未映射事件

即使我们的平台开始发送新的未映射事件,也不需要更新SDK版本即可消费它们。

只需开始监听通用事件

flourish.onGenericEvent((GenericEvent response) {
  print("事件名称: ${response.name}");
  print("事件数据: ${jsonEncode(response.data.toJson())}");
});

监听所有事件

但是,如果你想监听所有事件,我们也为你准备好了。

flourish.onAllEvent((Event response) {
  print("事件名称: ${response.name}");
});

需要监听的事件

以下是我们将返回的所有事件

事件名称 描述
BACK_BUTTON_PRESSED 当你需要知道用户点击了我们的平台上的后退菜单按钮时
ERROR_BACK_BUTTON_PRESSED 当你需要知道用户点击了错误页面上的后退菜单按钮时
HOME_BACK_BUTTON_PRESSED 当你需要知道用户在我们的平台主页上点击了后退菜单按钮时
ONBOARDING_BACK_BUTTON_PRESSED 当你需要知道用户在我们的平台引导页上点击了后退菜单按钮时
TERMS_ACCEPTED 当你需要知道用户点击接受条款时
TRIVIA_GAME_FINISHED 当你需要知道用户完成了我们的平台上的Trivia游戏时
TRIVIA_CLOSED 当你需要知道用户关闭了Trivia游戏时
REFERRAL_COPY 当你需要知道用户复制了推荐码到剪贴板区域时
REFERRAL_FINISHED 当你需要知道推荐结束时
REFERRAL_REWARD_REDEEMED 当你需要知道用户兑换推荐奖励时
REFERRAL_REWARD_SKIPPED 当你需要知道用户跳过了推荐奖励时
GIFT_CARD_COPY 当你需要知道用户复制了礼品卡代码到剪贴板区域时
HOME_BANNER_ACTION 当你需要知道用户点击了首页横幅时
MISSION_ACTION 当你需要知道用户点击了任务卡片时
AUTHENTICATION_FAILURE 当你需要知道认证失败时
ERROR 当你需要知道发生了未映射的错误时

示例

在这个仓库中,有一个示例应用程序来展示如何与我们集成:

https://github.com/Flourish-savings/flourish-sdk-flutter/tree/main/example

示例代码

import 'package:flourish_flutter_sdk_example/login.dart';
import 'package:flutter/material.dart';

void main() async {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '示例应用',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primaryColor: Color(0xffffffff),
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: Login(),
    );
  }
}

更多关于Flutter功能扩展插件flourish_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter功能扩展插件flourish_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中使用flourish_flutter_sdk插件的示例代码。请注意,这个示例假设你已经有一个Flutter项目,并且已经通过pubspec.yaml文件添加了flourish_flutter_sdk依赖。

首先,确保在你的pubspec.yaml文件中添加flourish_flutter_sdk依赖:

dependencies:
  flutter:
    sdk: flutter
  flourish_flutter_sdk: ^最新版本号  # 替换为实际的最新版本号

然后,运行flutter pub get来安装依赖。

接下来,你可以在你的Flutter项目中导入并使用flourish_flutter_sdk。以下是一个基本的示例,展示如何初始化SDK并使用其中一个功能(假设SDK有一个名为initialize的初始化方法和一个名为showFeature的功能方法):

import 'package:flutter/material.dart';
import 'package:flourish_flutter_sdk/flourish_flutter_sdk.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flourish Flutter SDK Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool isSDKInitialized = false;

  @override
  void initState() {
    super.initState();
    // 初始化SDK
    _initializeSDK();
  }

  Future<void> _initializeSDK() async {
    try {
      // 假设SDK有一个名为initialize的方法,并需要一些配置参数
      await FlourishFlutterSDK.initialize(
        apiKey: 'YOUR_API_KEY',  // 替换为你的API密钥
        environment: 'production'  // 或者 'development'
      );
      setState(() {
        isSDKInitialized = true;
      });
    } catch (e) {
      print('SDK初始化失败: $e');
    }
  }

  void _showFeature() {
    if (isSDKInitialized) {
      // 假设SDK有一个名为showFeature的方法
      FlourishFlutterSDK.showFeature(
        featureId: 'YOUR_FEATURE_ID',  // 替换为你的功能ID
        parameters: {
          'param1': 'value1',
          'param2': 'value2',
        },
      ).then((result) {
        print('Feature展示结果: $result');
      }).catchError((e) {
        print('展示功能失败: $e');
      });
    } else {
      print('请先初始化SDK');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flourish Flutter SDK Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'SDK初始化状态: ${isSDKInitialized ? '已初始化' : '未初始化'}',
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _showFeature,
              child: Text('展示功能'),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们:

  1. pubspec.yaml中添加了flourish_flutter_sdk依赖。
  2. MyApphome属性中设置了MyHomePage
  3. MyHomePageinitState方法中调用了_initializeSDK函数来初始化SDK。
  4. 提供了一个按钮,当点击按钮时,如果SDK已经初始化,则调用SDK的showFeature方法。

请注意,上述代码中的FlourishFlutterSDK.initializeFlourishFlutterSDK.showFeature以及它们的参数(如apiKeyenvironmentfeatureId等)都是假设的,你应该根据flourish_flutter_sdk的实际文档来调整这些方法和参数。

此外,确保你替换了YOUR_API_KEYYOUR_FEATURE_ID为实际的值,这些值通常会在你注册和使用flourish_flutter_sdk服务时提供。

回到顶部