From 8327000a0cce5e47226372e0e25c1e6faec497e7 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 12 一月 2022 16:56:43 +0800 Subject: [PATCH] 推送功能完善 --- lib/utils/user_util.dart | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-) diff --git a/lib/utils/user_util.dart b/lib/utils/user_util.dart index 8843036..76fceeb 100644 --- a/lib/utils/user_util.dart +++ b/lib/utils/user_util.dart @@ -1,12 +1,20 @@ +import 'dart:async'; import 'dart:convert'; import 'dart:ui'; import 'package:flutter/cupertino.dart'; import 'package:flutter/services.dart'; import 'package:fluwx_no_pay/fluwx_no_pay.dart' as fluwx; +import 'package:locations/api/http.dart'; import 'package:locations/model/user/user_info.dart'; +import 'package:locations/utils/event_bus_util.dart'; +import 'package:locations/utils/location_util.dart'; import 'package:locations/utils/string_util.dart'; import 'package:shared_preferences/shared_preferences.dart'; + +import 'push_util.dart'; + +Timer? locationTimer; class UserUtil { static const _loginMessageChannel = @@ -58,6 +66,36 @@ } } + static Future updateUserInfo(BuildContext context) async { + int? uid = await getUid(); + if (uid == null) { + return; + } + + Map<String, dynamic>? result = await UserApiUtil.getUserInfo(context, uid); + var code = result!["code"]; + if (code == 0) { + UserInfo user = UserInfo.fromJson(result["data"]); + //淇濆瓨鐢ㄦ埛淇℃伅 + UserUtil.setUserInfo(user); + //鏄惁鍚姩瀹氫綅 + + locationTimer ??= Timer(Duration(seconds: 30), () { + //鍒ゆ柇鏄惁宸茬粡鐧诲綍 + getUid().then((value) { + if (value == null) { + return; + } + if (user.needAlwaysLocation!) { + LocationUtil.startLocation(30, (state, map) {}); + } + }); + }); + } else if (code == 80001 || code == 80002) { + await logout(); + } + } + static Future<int?> getUid() async { UserInfo? user = await getUserInfo(); if (user != null) { @@ -73,6 +111,12 @@ //閫�鍑虹櫥褰� static logout() async { + await _logout(); + await PushUtil.removeAlias(); + eventBus.fire(LoginEventBus(false)); + } + + static _logout() async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.remove("user_info"); } -- Gitblit v1.8.0