Commit c4458dc6d4b5f681683e2176d695b40e324bd4f3
1 parent
f74aeedc
feat:启动页必要接口增加失败重试
Showing
1 changed file
with
43 additions
and
12 deletions
lib/app/splash_page.dart
| ... | ... | @@ -49,22 +49,12 @@ class _TransitionViewState extends State<TransitionView> { |
| 49 | 49 | Log.d('Splash读本地, userEntity: $userEntity'); |
| 50 | 50 | int apartInMilliseconds = 0; |
| 51 | 51 | // 阻塞获取系统配置信息 |
| 52 | - await AppConfigHelper.getAppConfig(); | |
| 52 | + AppConfigHelper.getAppConfig(); | |
| 53 | 53 | // 调一下接口判断一下有效性再往下 |
| 54 | 54 | if (userEntity != null && userEntity.token != null) { |
| 55 | 55 | String token = userEntity.token!; |
| 56 | 56 | DateTime startTime = DateTime.now(); |
| 57 | - try { | |
| 58 | - userEntity = await UserDao.getUserInfo(); | |
| 59 | - Log.d('Splash在线更新, userEntity: $userEntity'); | |
| 60 | - if (userEntity != null) { | |
| 61 | - userEntity.token = token; | |
| 62 | - Log.d('Splash重设token, userEntity: $userEntity'); | |
| 63 | - UserUtil.saveUser(userEntity); | |
| 64 | - } | |
| 65 | - } catch (e) { | |
| 66 | - e.logE(); | |
| 67 | - } | |
| 57 | + await fetchNecessaryData(token); | |
| 68 | 58 | apartInMilliseconds = DateTime.now().difference(startTime).inMilliseconds; |
| 69 | 59 | } |
| 70 | 60 | int duration = max(2000 - apartInMilliseconds, 0); |
| ... | ... | @@ -105,6 +95,47 @@ class _TransitionViewState extends State<TransitionView> { |
| 105 | 95 | }); |
| 106 | 96 | } |
| 107 | 97 | |
| 98 | + Future<void> fetchNecessaryData(String userToken) async { | |
| 99 | + // 获取用户信息 | |
| 100 | + try { | |
| 101 | + UserEntity? userEntity = await UserDao.getUserInfo(); | |
| 102 | + Log.d('Splash在线更新, userEntity: $userEntity'); | |
| 103 | + if (userEntity != null) { | |
| 104 | + userEntity.token = userToken; | |
| 105 | + Log.d('Splash重设token, userEntity: $userEntity'); | |
| 106 | + UserUtil.saveUser(userEntity); | |
| 107 | + } | |
| 108 | + } catch (e) { | |
| 109 | + //异常的话弹窗提示重试 | |
| 110 | + showDialog( | |
| 111 | + context: context, | |
| 112 | + barrierDismissible: false, | |
| 113 | + builder: (BuildContext context) { | |
| 114 | + return WillPopScope( | |
| 115 | + onWillPop: () => Future.value(false), | |
| 116 | + child: AlertDialog( | |
| 117 | + title: const Text('温馨提示'), | |
| 118 | + content: const Text('网络异常,请检查网络后重试'), | |
| 119 | + actions: <Widget>[ | |
| 120 | + TextButton( | |
| 121 | + child: const Text('退出'), | |
| 122 | + onPressed: () => AppConfigHelper.exitApp() | |
| 123 | + ), | |
| 124 | + TextButton( | |
| 125 | + child: const Text('重试'), | |
| 126 | + onPressed: () async { | |
| 127 | + fetchNecessaryData(userToken); | |
| 128 | + }, | |
| 129 | + ), | |
| 130 | + ], | |
| 131 | + ), | |
| 132 | + ); | |
| 133 | + }, | |
| 134 | + ); | |
| 135 | + e.logE(); | |
| 136 | + } | |
| 137 | + } | |
| 138 | + | |
| 108 | 139 | @override |
| 109 | 140 | void initState() { |
| 110 | 141 | super.initState(); | ... | ... |