Flutter功能扩展插件flourish_flutter_sdk的使用
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。最重要的是,它不应与打开我们的模块同时初始化。
首先,必须提供变量partnerId
、secret
、env
、language
和customerCode
来初始化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
更多关于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('展示功能'),
),
],
),
),
);
}
}
在这个示例中,我们:
- 在
pubspec.yaml
中添加了flourish_flutter_sdk
依赖。 - 在
MyApp
的home
属性中设置了MyHomePage
。 - 在
MyHomePage
的initState
方法中调用了_initializeSDK
函数来初始化SDK。 - 提供了一个按钮,当点击按钮时,如果SDK已经初始化,则调用SDK的
showFeature
方法。
请注意,上述代码中的FlourishFlutterSDK.initialize
、FlourishFlutterSDK.showFeature
以及它们的参数(如apiKey
、environment
、featureId
等)都是假设的,你应该根据flourish_flutter_sdk
的实际文档来调整这些方法和参数。
此外,确保你替换了YOUR_API_KEY
和YOUR_FEATURE_ID
为实际的值,这些值通常会在你注册和使用flourish_flutter_sdk
服务时提供。