Merge remote-tracking branch 'Gitea/master' into iOS

This commit is contained in:
2022-07-20 23:10:05 +08:00
5 changed files with 55 additions and 3 deletions
+1 -1
View File
@@ -1 +1 @@
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":20220531,"versionName":"1.5.2","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":20220620,"versionName":"1.5.3","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
+8
View File
@@ -199,6 +199,8 @@ clear_user_info() {
// 区县中心地址
center_latitude = -1; // 区县中心纬度
center_longitude = -1; // 区县中心经度
userLogin = -1; //设置用户登录成功标志:1 成功,0 失败,-1 处理中
tabsState = -1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
}
// 511528、兴文县
@@ -320,6 +322,12 @@ Future<void> sysPop() async {
await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
}
int tabsState = -1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
// resumed:可见的,并能响应用户的输入。
// inactive:处在不活动状态,无法处理用户响应。
// paused:不可见并不能响应用户的输入,但是在后台继续活动中。
int userLogin = -1; //用户登录成功标志:1 成功,0 失败,-1 处理中
//人脸注册和人脸识别登录成功标志
int faceReg = -1; //1 成功,0 失败,-1 处理中
int faceLogin = -1; //1 成功,0 失败,-1 处理中
+6
View File
@@ -2676,6 +2676,9 @@ Future faceLoginFun({@required String filePath, @required BuildContext context})
g_userInfo.setUserInfoFaceLogin(_mapGetData).then((value) {
// 一套APP适应多个区县登录过程04、登录成功,开始使用保存的登录信息预加载数据,并设置faceLogin = 1
faceLogin = 1; //设置人脸验证成功标志。1 成功,0 失败,-1 处理中
userLogin = 1; //设置用户登录成功标志:1 成功,0 失败,-1 处理中
tabsState = 1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
print("tabsState = $tabsState");
startGetStatisDataNew(); // 2、登录前提前获取统计数据,改善用户登录体验
});
//获取其他用户信息
@@ -2693,6 +2696,9 @@ Future faceLoginFun({@required String filePath, @required BuildContext context})
});
} else {
faceLogin = 0; //设置人脸验证成功标志。1 成功,0 失败,-1 处理中
userLogin = 0; //设置用户登录成功标志:1 成功,0 失败,-1 处理中
tabsState = -1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
print("tabsState = $tabsState");
print('人脸验证失败。');
Navigator.pushNamed(context, '/');
Fluttertoast.showToast(
+6
View File
@@ -160,6 +160,9 @@ class _LoginPageState extends State<LoginByName3> {
if (true == response.data["data"]["is_login"]) {
print('登录成功');
print('response.data = ${response.data}');
userLogin = 1; //设置用户登录成功标志:1 成功,0 失败,-1 处理中
tabsState = 1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
print("tabsState = $tabsState");
// 一套APP适应多个区县登录过程02、进行登录验证,保存登录信息
if (bRemmberPW) {
@@ -207,6 +210,9 @@ class _LoginPageState extends State<LoginByName3> {
// Navigator.pushNamed(context, '/tabs', arguments: g_iIndex);
} else {
print('登录失败:${response.data["data"]}');
userLogin = 0; //设置用户登录成功标志:1 成功,0 失败,-1 处理中
tabsState = -1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
print("tabsState = $tabsState");
bLoginVerify = false; //处理延时登录,判断用户名登录是否验证通过
bPreLoading = false;
try_setState(); // 登录失败后,刷新页面
+33 -1
View File
@@ -28,7 +28,7 @@ class Tabs extends StatefulWidget {
_TabsState createState() => _TabsState();
}
class _TabsState extends State<Tabs> {
class _TabsState extends State<Tabs> with WidgetsBindingObserver {
// 初始化插件
DisableScreenshots _watermarkPlugin = DisableScreenshots();
@@ -86,6 +86,33 @@ class _TabsState extends State<Tabs> {
});
init();
tabsState = 1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
print("tabsState = $tabsState");
// 注册应用生命周期监听
WidgetsBinding.instance.addObserver(this);
}
//监听App生命周期回调
@override
void didChangeAppLifecycleState(AppLifecycleState state) async {
print("$state");
tabsState = -1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
switch (state) {
// 处于这种状态的应用程序应该假设他们可能在任何时候暂停
case AppLifecycleState.inactive:
break;
case AppLifecycleState.resumed: // 从后台切前台,界面可见
tabsState = 1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
break;
case AppLifecycleState.paused: // 界面不可见,后台
case AppLifecycleState.detached: // APP 结束时调用
break;
}
print("tabsState = $tabsState");
// resumed:可见的,并能响应用户的输入。
// inactive:处在不活动状态,无法处理用户响应。
// paused:不可见并不能响应用户的输入,但是在后台继续活动中。
}
init() async {
@@ -97,7 +124,10 @@ class _TabsState extends State<Tabs> {
WidgetsFlutterBinding.ensureInitialized();
FlutterBackgroundService.initialize(onStart);
if (g_bVoiceRemind) {
// 如果是安卓平台允许后台提醒,如果是IOS平台、必须在前台才提醒
if (Platform.isAndroid || (Platform.isIOS && 1 == tabsState)) {
doRemind();
}
} else {
Future.delayed(Duration(seconds: 1), () {
FlutterBackgroundService().sendData({"action": "stopService"});
@@ -108,6 +138,8 @@ class _TabsState extends State<Tabs> {
@override
void dispose() {
// 移除生命周期监听
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}