Flutter活动管理插件activsy的使用(注:由于插件介绍为undefined,以下功能基于插件名称“activsy”进行合理推测)
Flutter 活动管理插件 activsy
的使用
安装
在你的 pubspec.yaml
文件中添加 activsy
插件:
dependencies:
activsy: ^1.0.1
然后运行 flutter pub get
来安装该插件。
使用
首先,在你的应用启动时初始化 activsy
。你可以设置一个等待时间 (waiTime
) 和一个超时回调 (onTimeOut
)。
import 'package:flutter/material.dart';
import 'package:activsy/activsy.dart';
void main() {
// 确保 Flutter 绑定已经初始化
WidgetsFlutterBinding.ensureInitialized();
// 初始化 activsy 插件
Activsy.initialize(waiTime: 10, onTimeOut: () {
/// 当用户没有活动时调用此方法
/// 调用 start 方法以继续监控
});
// 运行应用
runApp(const MyApp());
}
接下来,创建一个 ActivsyWidget
并将其作为应用的根组件。你可以在 builder
回调中定义你的应用结构。
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return ActivsyWidget(
detectedMouseAction: false,
builder: (context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
},
);
}
}
你也可以通过实现 onEvent
方法来拦截交互事件。
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return ActivsyWidget(
onEvent: (event) {
/// 处理事件
},
builder: (context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
},
);
}
}
当 onTimeOut
方法被调用时,监控将终止。如果你想重新开始监控,可以调用 start()
方法。
函数和属性
-
start:调用
Activsy.start()
开始监控用户与应用的交互。Activsy.start();
-
stop:调用
Activsy.stop()
结束监控。Activsy.stop();
-
reset:调用
Activsy.reset()
重启监控,并且可以修改等待时间。Activsy.reset(); Activsy.updateTime(waiTime: 60);
-
forceTimeOut:调用
Activsy.forceTimeOut()
可以立即触发onTimeOut
方法。Activsy.forceTimeOut();
-
isInitialized:检查是否已初始化。
bool isInitialized = Activsy.isInitialized;
-
isActive:检查监控是否处于活动状态。
bool isActive = Activsy.isActive;
注意:调用上述函数之前必须先调用 initialize
方法,否则会抛出异常。
示例代码
以下是完整的示例代码,展示了如何在应用中使用 activsy
插件。
import 'package:activsy/activsy.dart';
import 'package:flutter/material.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(App());
}
class App extends StatefulWidget {
[@override](/user/override)
State<App> createState() => _AppState();
}
class _AppState extends State<App> {
final GlobalKey<NavigatorState> _globalKey = GlobalKey<NavigatorState>();
final int _waiTime = 3;
void onEvent(dynamic _) {
debugPrint('onEvent');
}
void onTimeOut() async {
debugPrint('onTimeOut :)');
await _globalKey.currentState?.pushNamed('/authentication');
Activsy.start();
}
[@override](/user/override)
void initState() {
super.initState();
Activsy.initialize(waiTime: _waiTime, onTimeOut: onTimeOut);
Activsy.start();
}
[@override](/user/override)
Widget build(BuildContext context) {
return ActivsyWidget(
withMouse: true,
onEvent: onEvent,
builder: (ctx) {
return MaterialApp(
title: 'Activsy',
navigatorKey: _globalKey,
theme: ThemeData(
primarySwatch: Colors.blue,
),
initialRoute: '/',
onGenerateRoute: AppRouter.route,
);
},
);
}
}
abstract class AppRouter {
static Route<dynamic> route(RouteSettings settings) {
debugPrint("route:: ${settings.name}");
switch (settings.name) {
case '/authentication':
return MaterialPageRoute(builder: (_) => AuthenticationPage());
default:
return MaterialPageRoute(builder: (_) => TransactionsPage());
}
}
}
更多关于Flutter活动管理插件activsy的使用(注:由于插件介绍为undefined,以下功能基于插件名称“activsy”进行合理推测)的实战教程也可以访问 https://www.itying.com/category-92-b0.html