welcome_page.dart 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. import 'dart:async';
  2. import 'dart:convert';
  3. import 'dart:io';
  4. import 'package:bbyyy/beans/app_store_review_bean_entity.dart';
  5. import 'package:bbyyy/beans/login_information_bean_entity.dart';
  6. import 'package:bbyyy/https/MyDio.dart';
  7. import 'package:bbyyy/https/my_request.dart';
  8. import 'package:bbyyy/my_tools/easy_loading/easy_loading.dart';
  9. import 'package:bbyyy/my_tools/event_bus.dart';
  10. import 'package:bbyyy/my_tools/my_apis.dart';
  11. import 'package:bbyyy/my_tools/my_colors.dart';
  12. import 'package:bbyyy/my_tools/my_cookie.dart';
  13. import 'package:bbyyy/my_tools/my_tools.dart';
  14. import 'package:bbyyy/my_tools/my_views.dart';
  15. import 'package:bbyyy/my_tools/s.dart';
  16. import 'package:bbyyy/paegs/login_page/login_page.dart';
  17. import 'package:bbyyy/paegs/root_page/root_page.dart';
  18. import 'package:flutter/material.dart';
  19. import 'package:flutter/services.dart';
  20. class WelcomePage extends StatefulWidget {
  21. @override
  22. _WelcomePageState createState() => _WelcomePageState();
  23. }
  24. class _WelcomePageState extends State<WelcomePage> {
  25. @override
  26. void initState() {
  27. super.initState();
  28. EasyLoading.instance
  29. ..displayDuration = const Duration(milliseconds: 1500)
  30. ..indicatorType = EasyLoadingIndicatorType.ring
  31. ..loadingStyle = EasyLoadingStyle.light
  32. ..maskType = EasyLoadingMaskType.black
  33. ..indicatorSize = 45.0
  34. ..radius = 10.0
  35. ..textPadding = EdgeInsets.all(0)
  36. ..contentPadding = EdgeInsets.fromLTRB(20, 12, 20, 12)
  37. ..userInteractions = false;
  38. EventBus().on('服务器异常,请稍后再试', (arg) {
  39. qAPP();
  40. });
  41. EventBus().on('packageInfo', (arg) {
  42. try {
  43. if (MyCookie().prefs.getString('timestamp') != null &&
  44. MyCookie().prefs.getString('timestamp') != '' &&
  45. MyCookie().prefs.getString('uid') != null &&
  46. MyCookie().prefs.getString('uid') != '' &&
  47. MyCookie().prefs.getString('using') != null &&
  48. MyCookie().prefs.getString('using') != '') {
  49. s().encryption();
  50. }
  51. } catch (e) {}
  52. isItUnderReview();
  53. });
  54. MyCookie().initP();
  55. }
  56. void isItUnderReview() {
  57. EasyLoading.show();
  58. MyDio().post(MyApis.getApi('appStoreReview'),
  59. {'version': MyCookie().packageInfo.version}, (response, hasError) {
  60. if (!hasError) {
  61. EasyLoading.dismiss();
  62. AppStoreReviewBeanEntity e = AppStoreReviewBeanEntity.fromJson(
  63. json.decode(response.data.toString()));
  64. print(e.data);
  65. if (e.data && Platform.isIOS) {
  66. MyCookie().underReview = true;
  67. } else {
  68. MyCookie().underReview = false;
  69. }
  70. EventBus().emit('appStoreReview');
  71. Timer(Duration(seconds: 1), () {
  72. if (MyCookie().getLoginInformation() == null ||
  73. MyCookie().getLoginInformation().data == null ||
  74. MyCookie().getLoginInformation().data.token.isEmpty ||
  75. MyCookie().getLoginInformation().data.token == '') {
  76. MyTools().toPage(context, LoginPage(), (then) {}, noBack: true);
  77. } else {
  78. MyDio().initDio();
  79. checkLogin((r, hE) {
  80. if (!hE) {
  81. String token = MyCookie().getToken();
  82. LoginInformationBeanEntity loginInformation =
  83. LoginInformationBeanEntity.fromJson(
  84. json.decode(r.data.toString()));
  85. loginInformation.data.token = token;
  86. MyCookie().saveLoginInformationBeanEntity(loginInformation);
  87. MyTools().toPage(context, RootPage(), (then) {}, noBack: true);
  88. } else {
  89. MyTools().toPage(context, LoginPage(), (then) {}, noBack: true);
  90. }
  91. }, (e) {});
  92. }
  93. });
  94. }
  95. }, (error) {});
  96. }
  97. @override
  98. Widget build(BuildContext context) {
  99. return Scaffold(
  100. body: Stack(
  101. children: [
  102. Image.asset(
  103. 'images/we_bg.png',
  104. fit: BoxFit.cover,
  105. height: MediaQuery.of(context).size.height,
  106. width: MediaQuery.of(context).size.width,
  107. ),
  108. Image.asset(
  109. 'images/we_logo.png',
  110. height: 118,
  111. width: 118,
  112. )
  113. ],
  114. alignment: Alignment.center,
  115. ),
  116. );
  117. }
  118. void qAPP() {
  119. showDialog(
  120. context: context,
  121. builder: (BuildContext context) {
  122. return Material(
  123. color: Colors.black12,
  124. child: Center(
  125. child: Container(
  126. decoration: BoxDecoration(
  127. borderRadius: BorderRadius.circular(16),
  128. color: Colors.white,
  129. ),
  130. height: 180,
  131. margin: EdgeInsets.symmetric(horizontal: 18),
  132. padding: EdgeInsets.symmetric(horizontal: 8, vertical: 12),
  133. child: Column(
  134. children: [
  135. Center(
  136. child: Container(
  137. height: 100,
  138. child: MyViews()
  139. .myText('网络链接异常,请检查您的网络。', MyColors.c333333, 14),
  140. margin: EdgeInsets.symmetric(horizontal: 20),
  141. alignment: Alignment.center,
  142. ),
  143. ),
  144. Container(
  145. height: 0.5,
  146. color: MyColors.cE7E7E7,
  147. margin: EdgeInsets.only(bottom: 12),
  148. ),
  149. Container(
  150. margin: EdgeInsets.symmetric(horizontal: 10),
  151. child: GestureDetector(
  152. behavior: HitTestBehavior.translucent,
  153. onTap: () async {
  154. await SystemChannels.platform
  155. .invokeMethod('SystemNavigator.pop');
  156. },
  157. child: Container(
  158. decoration: BoxDecoration(
  159. borderRadius: BorderRadius.circular(20),
  160. color: MyColors.cFF4233),
  161. height: 40,
  162. child: MyViews().myText('退 出', Colors.white, 14),
  163. alignment: Alignment.center,
  164. ),
  165. ),
  166. )
  167. ],
  168. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  169. ),
  170. ),
  171. ),
  172. );
  173. },
  174. );
  175. }
  176. }