[英]Do I want to perform a function on my app flutter whenever the app is closed by the user?
我用 flutter 开发了一个应用程序,它有一个与 OneSignal 的聊天和通知系统,在这个应用程序中,playerId 在应用程序第一次打开时注册,并在用户登录系统时链接到用户。
用户还可以选择保持登录状态!
用例:
当用户选择保持登录状态时,这很好,因为他会正常收到您的聊天通知。 但是当他选择不登录时,我遇到了问题。
当他在使用应用程序时,他应该链接到 playerId,但是当他关闭应用程序时(不管他怎么做,因为在手机上可以通过多种方式完成),你应该调用 function 取消链接用户来自 playerId 以便它不再接收聊天通知!
我的问题是,每当应用程序关闭时,我该如何执行此 function?
我想这样做是因为用户可以在不同的智能手机上访问系统。
我想到了 WillPopScope 但这只会检测到何时触发返回指挥棒。
有人能帮我吗? 谢谢!
您可以尝试侦听应用程序的生命周期事件
https://medium.com/pharos-production/flutter-app-lifecycle-4b0ab4a4211a
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
class LifecycleEventHandler extends WidgetsBindingObserver {
LifecycleEventHandler({this.resumeCallBack, this.suspendingCallBack});
final AsyncCallback resumeCallBack;
final AsyncCallback suspendingCallBack;
@override
Future<Null> didChangeAppLifecycleState(AppLifecycleState state) async {
switch (state) {
case AppLifecycleState.inactive:
case AppLifecycleState.paused:
case AppLifecycleState.suspending:
await suspendingCallBack();
break;
case AppLifecycleState.resumed:
await resumeCallBack();
break;
}
}
}
class AppWidgetState extends State<AppWidget> {
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(
new LifecycleEventHandler(resumeCallback(() => setState((){}))
);
}
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.