Flutter集成AppBoxo服务插件appboxo_sdk的使用
Flutter集成AppBoxo服务插件appboxo_sdk的使用
一个用于在iOS和Android上集成AppBoxo的Flutter插件。
使用方法
import 'package:appboxo_sdk/appboxo_sdk.dart';
Appboxo.setConfig("[client_id]"); // 设置你的AppBoxo client_id
Appboxo.setConfig("[client_id]", sandboxMode: false, multitaskMode: false);
// 'multitaskMode'仅适用于Android,默认为true,每个小程序都会出现在最近的任务列表中。
Appboxo.openMiniapp("[miniapp_id]", data, theme);
// 通过ID启动小程序。[data]是一个map,theme可以是 "light" | "dark" | "system"
Appboxo.hideAllMiniapps(); // 使用此方法关闭所有小程序屏幕
Appboxo.logout(); // 在从应用中注销时调用此方法以清除所有小程序数据。
示例代码
Appboxo.openMiniapp("[miniapp_id]", "[data]");
使用此方法可以在启动小程序时传递数据。
自定义事件
处理来自小程序的事件并发送到小程序。
Appboxo.customEvents().listen((CustomEvent event) {
if (event.appId == 'app12345') {
event.payload = {"foo": "bar"};
Appboxo.sendEvent(event);
}
});
支付事件
处理来自小程序的支付事件并发送到小程序。
Appboxo.paymentEvents().listen((PaymentEvent event) {
if (event.appId == 'app12345') {
event.status = "success";
Appboxo.sendPaymentEvent(event);
}
});
Android 配置
需要AndroidX支持。在android/gradle.properties
文件中添加以下配置:
android.useAndroidX=true
android.enableJetifier=true
完整示例代码
import 'package:flutter/material.dart';
import 'package:appboxo_sdk/appboxo_sdk.dart';
import 'package:fluttertoast/fluttertoast.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
Future<void> Function()? subscription;
[@override](/user/override)
void dispose() {
subscription?.call();
super.dispose();
}
[@override](/user/override)
void initState() {
super.initState();
Appboxo.setConfig("602248",
userId: "24", multitaskMode: true, theme: 'light');
// 'multitaskMode'仅适用于Android,默认为true,每个小程序都会出现在最近的任务列表中。
Appboxo.customEvents().listen((CustomEvent event) {
print(event.toJson().toString());
Fluttertoast.showToast(
msg: event.payload["message"] ?? event.type,
toastLength: Toast.LENGTH_SHORT,
timeInSecForIosWeb: 1,
backgroundColor: Colors.black,
textColor: Colors.white,
fontSize: 16.0,
);
Appboxo.sendEvent(event);
});
Appboxo.paymentEvents().listen((event) {
event.status = "success";
Appboxo.sendPaymentEvent(event);
});
Appboxo.miniapps().listen((result) {
print('miniapps - ${result.miniapps.toString()}');
result.miniapps?.forEach((data) => print(data.name));
print('error - ${result.error}');
});
Appboxo.getMiniapps();
subscription = Appboxo.lifecycleHooksListener(
onAuth: (appId) {
print(appId);
print('onAuth');
},
onLaunch: (appId) {
print(appId);
print('onLaunch');
},
onResume: (appId) {
print(appId);
print('onResume');
},
onPause: (appId) {
print(appId);
print('onPause');
},
onClose: (appId) {
print(appId);
print('onClose');
},
onError: (appId, error) {
print(appId);
print(error);
print('onError');
},
);
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: const Text('Appboxo SDK 测试'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
Appboxo.openMiniapp("app16973",
data: {'title': '标题'},
extraUrlParams: {'key': 'value'},
colors: {
'primary_color': '#000000',
'secondary_color': '#0000FF',
'tertiary_color': '#00FF00'
},
enableSplash: false);
},
child: const Text(
'运行小程序',
style: TextStyle(
color: Colors.white,
fontSize: 16,
),
),
),
),
),
);
}
}
更多关于Flutter集成AppBoxo服务插件appboxo_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成AppBoxo服务插件appboxo_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中集成并使用appboxo_sdk
插件的示例代码。这个示例假设你已经有一个Flutter项目,并且已经配置好了基本的开发环境。
1. 添加依赖
首先,你需要在pubspec.yaml
文件中添加appboxo_sdk
的依赖。
dependencies:
flutter:
sdk: flutter
appboxo_sdk: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
2. 初始化AppBoxo SDK
在你的Flutter项目的入口文件(通常是main.dart
)中,你需要初始化AppBoxo SDK。你需要提供你的AppBoxo应用的API密钥。
import 'package:flutter/material.dart';
import 'package:appboxo_sdk/appboxo_sdk.dart';
void main() {
// 初始化AppBoxo SDK
AppBoxo.initialize(apiKey: '你的AppBoxo API密钥');
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter AppBoxo Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter AppBoxo Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: _showAppBoxo,
child: Text('Show AppBoxo'),
),
),
);
}
void _showAppBoxo() {
// 显示AppBoxo界面
AppBoxo.show(
context: context,
userId: '用户ID', // 可选,用于标识当前用户
customData: {
'key1': 'value1',
'key2': 'value2',
}, // 可选,用于传递自定义数据给AppBoxo
);
}
}
3. 处理回调(可选)
你可以处理AppBoxo事件回调,比如用户完成某个动作后。这通常用于更新UI或执行其他逻辑。
import 'package:flutter/material.dart';
import 'package:appboxo_sdk/appboxo_sdk.dart';
void main() {
// 初始化AppBoxo SDK并设置回调
AppBoxo.initialize(
apiKey: '你的AppBoxo API密钥',
onEvent: (event) {
// 处理AppBoxo事件回调
print('Received event from AppBoxo: $event');
},
);
runApp(MyApp());
}
// ... (MyApp, MyHomePage, 和 _MyHomePageState 的代码保持不变)
4. 处理生命周期事件(可选)
如果你需要在应用的生命周期事件中执行特定的逻辑,比如当用户离开应用时暂停AppBoxo SDK,你可以在AppLifecycleState
监听器中实现。
class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance!.addObserver(this);
}
@override
void dispose() {
WidgetsBinding.instance!.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.paused) {
// 应用进入后台时暂停AppBoxo SDK(如果需要)
AppBoxo.pause();
} else if (state == AppLifecycleState.resumed) {
// 应用回到前台时恢复AppBoxo SDK(如果需要)
AppBoxo.resume();
}
}
// ... (其他代码保持不变)
}
总结
以上代码展示了如何在Flutter项目中集成并使用appboxo_sdk
插件。请确保替换示例代码中的你的AppBoxo API密钥
为实际的API密钥,并根据你的需求调整代码。