Flutter后台访问插件backdoor_flutter的使用
Flutter后台访问插件backdoor_flutter的使用
Flutter Backdoor Package
此插件添加了一个后门功能,用于检查自由职业或其他项目的支付状态。
需求
一个托管的JSON文件,格式如下:
https://raw.githubusercontent.com/gktirkha/backdoor_flutter/refs/heads/master/assets/example-hosted.json
单个JSON文件可以处理多个项目。
JSON参数
-
apps: 包含所有应用对象。如果要添加新应用,只需添加即可。
在每个应用中可以添加以下参数:
-
status: 必填参数,可以有以下值:
- PAID: 支付未完成
- UNPAID: 支付已完成
- ALLOW_LIMITED_LAUNCHES: 使用最大启动机制
- ON_TRIAL: 使用到期日期机制
-
target_version: 检查与代码中配置的版本是否匹配(应大于0)
-
should_check_after_paid: 即使状态为已支付,也强制检查在线JSON(一旦设置为false,具有缓存数据的设备将不会有任何影响)
-
check_during_trial: 在试用期内强制检查在线JSON(一旦设置为false,具有缓存数据的设备将不会有任何影响)
-
expire_date:
ON_TRIAL
机制的过期日期 -
warning_date: 在
ON_TRIAL
机制中发出警告 -
max_launch: 超过多少次启动后应检查在线JSON的
ALLOW_LIMITED_LAUNCHES
机制 -
strict_max_launch: 如果设置为false(默认在flutter代码中为true),则启动计数将在flutter代码中重置。如果设置为true,超过限制后将调用
OnLimitedLaunchExceeded
,否则启动计数将重置。 -
developer_details: 可选的json对象(Map)
-
additional_fields: 可以发送任何内容
-
流程图
使用方法
请参阅dart文档版本:Dart Doc
步骤1:添加依赖
dependencies:
backdoor_flutter: ^latest_version
步骤2:在代码中使用
import 'dart:developer';
import 'package:backdoor_flutter/backdoor_flutter.dart';
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await BackdoorFlutter.init(
jsonUrl:
"https://raw.githubusercontent.com/gktirkha/backdoor_flutter/beta/assets/example-hosted.json",
appName: "trial_expire",
version: 1,
);
runApp(const MainApp());
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
BackdoorFlutter.checkStatus(
onException: (exception) {
log(exception.toString(), name: "onException");
},
onUnhandled: (reason, backdoorPaymentModel) {
log(reason.name, name: "onUnhandled");
log(backdoorPaymentModel.toString(), name: "onUnhandled");
},
onAppNotFound: () {
log("onAppNotFound", name: "onAppNotFound");
},
onLimitedLaunch: (backdoorPaymentModel, currentCount) {
log(currentCount.toString(), name: "onLimitedLaunch");
log(backdoorPaymentModel.toString(), name: "onLimitedLaunch");
},
onLimitedLaunchExceeded: (backdoorPaymentModel) {
log(backdoorPaymentModel.toString(),
name: "onLimitedLaunchExceeded");
},
onPaid: (backdoorPaymentModel) {
log(backdoorPaymentModel.toString(), name: "onPaid");
},
onTargetVersionMisMatch:
(backdoorPaymentModel, targetVersion, configuredVersion) {
log(backdoorPaymentModel.toString(),
name: "onTargetVersionMisMatch");
log(targetVersion.toString(),
name: "onTargetVersionMisMatch Target Version");
log(configuredVersion.toString(),
name: "onTargetVersionMisMatch Configured Version");
},
onTrial: (backdoorPaymentModel, expiryDate, warningDate) {
log(backdoorPaymentModel.toString(), name: "onTrial");
log(expiryDate.toString(), name: "onTrial expiryDate");
log(warningDate.toString(), name: "onTrial warningDate");
},
onTrialEnded: (backdoorPaymentModel, expiryDate) {
log(backdoorPaymentModel.toString(), name: "onTrialEnded");
log(expiryDate.toString(), name: "onTrialEnded expiryDate");
},
onTrialWarning:
(backdoorPaymentModel, expiryDate, warningDate) {
log(backdoorPaymentModel.toString(), name: "onTrialWarning");
log(expiryDate.toString(), name: "onTrialWarning expiryDate");
log(warningDate.toString(),
name: "onTrialWarning warningDate");
},
onUnPaid: (backdoorPaymentModel) {
log(backdoorPaymentModel.toString(), name: "onUnPaid");
},
);
},
child: const Text("Check App"),
),
),
),
);
}
}
更多关于Flutter后台访问插件backdoor_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter后台访问插件backdoor_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
backdoor_flutter
是一个 Flutter 插件,用于在开发过程中提供一些调试和测试功能。它允许开发者通过一个 HTTP 服务器在运行时访问和修改应用程序的内部状态。这对于调试、性能测试和自动化测试非常有用。
以下是如何使用 backdoor_flutter
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 backdoor_flutter
插件的依赖:
dependencies:
flutter:
sdk: flutter
backdoor_flutter: ^0.1.0 # 请检查最新版本
然后运行 flutter pub get
来获取依赖。
2. 导入插件
在你的 Dart 代码中导入 backdoor_flutter
插件:
import 'package:backdoor_flutter/backdoor_flutter.dart';
3. 初始化 Backdoor
在你的应用程序启动时初始化 Backdoor
。通常,你可以在 main.dart
文件中进行操作:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Backdoor
await Backdoor.initialize(
port: 8080, // 设置服务器端口
enableLogging: true, // 启用日志记录
);
runApp(MyApp());
}
4. 暴露方法或变量
你可以使用 Backdoor.expose
方法来暴露应用程序中的方法或变量,以便通过 HTTP 请求进行访问或修改。
class MyApp extends StatelessWidget {
int counter = 0;
MyApp() {
// 暴露一个整数变量
Backdoor.expose('counter', () => counter, (value) => counter = value);
// 暴露一个方法
Backdoor.expose('increment', () {
counter++;
return 'Counter incremented to $counter';
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Backdoor Example',
home: Scaffold(
appBar: AppBar(
title: Text('Backdoor Example'),
),
body: Center(
child: Text('Counter: $counter'),
),
),
);
}
}