我在Flutter Web上测试了AppLifeCycleState,但是它没有在移动平台上工作。这是一个正在解决的问题。
我想知道有没有人知道任何解决方法或包可以做到这一点?
我想知道有没有人知道任何解决方法或包可以做到这一点?
以下是我的解决方案
import 'dart:html';
import 'package:flutter/foundation.dart';
// inside your State class
@override
void initState() {
super.initState();
if (kIsWeb) {
window.addEventListener('focus', onFocus);
window.addEventListener('blur', onBlur);
} else {
WidgetsBinding.instance!.addObserver(this);
}
}
@override
void dispose() {
if (kIsWeb) {
window.removeEventListener('focus', onFocus);
window.removeEventListener('blur', onBlur);
} else {
WidgetsBinding.instance!.removeObserver(this);
}
super.dispose();
}
void onFocus(Event e) {
didChangeAppLifecycleState(AppLifecycleState.resumed);
}
void onBlur(Event e) {
didChangeAppLifecycleState(AppLifecycleState.paused);
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
// do your thing
}
基本上,您需要挂钩浏览器的可见性API并自己调用生命周期回调函数。
WidgetsBindingObserver
扩展类,错误已经消失了。我现在会进行测试。 - user15782390didChangeAppLifecycleState()
仍在运行。 - user15782390