splash_controller.dart 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import 'package:flutter_bugly/flutter_bugly.dart';
  2. import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
  3. import 'package:get/get.dart';
  4. import 'package:app/jpush/jpush_receive.dart';
  5. import 'package:app/modules/main/main_page.dart';
  6. import 'package:initializer/app_initializer.dart';
  7. import 'package:plugin_basic/constants/app_constant.dart';
  8. import 'package:plugin_basic/service/config_services_injection.dart';
  9. import 'package:plugin_platform/engine/directory/directory_util.dart';
  10. import 'package:plugin_platform/engine/sp/sp_util.dart';
  11. import 'package:shared/utils/device_utils.dart';
  12. import 'package:shared/utils/log_utils.dart';
  13. class SplashController extends GetxController {
  14. @override
  15. void onReady() {
  16. super.onReady();
  17. //是否是第一次进入App,需要同意协议弹窗,否则退出App
  18. final isFirstOpen = SPUtil.getBool(AppConstant.storageFirstOpen) ?? false;
  19. Log.d('isFirstOpen:$isFirstOpen');
  20. if (!isFirstOpen) {
  21. //展示协议弹窗
  22. _showAgreementDialog();
  23. if (DeviceUtils.isAndroid) {
  24. // AppChannel.skipAndroidSplashScreen();
  25. }
  26. } else {
  27. _gotoNextPage();
  28. }
  29. }
  30. // 展示协议弹窗
  31. void _showAgreementDialog() {
  32. // SmartDialog.show(
  33. // usePenetrate: false,
  34. // clickMaskDismiss: false,
  35. // backDismiss: false,
  36. // keepSingle: true,
  37. // builder: (context) => PrivacyPolicyDialog(
  38. // confirmAction: () {
  39. // Log.d('同意协议了');
  40. // SPUtil.putBool(AppConstant.storageFirstOpen, true);
  41. // _gotoNextPage();
  42. // },
  43. // cancelAction: () {
  44. // //提示是否进入基础功能
  45. // _showSimpleModelDialog();
  46. // },
  47. // ),
  48. // );
  49. SPUtil.putBool(AppConstant.storageFirstOpen, true);
  50. _gotoNextPage();
  51. }
  52. // 展示基础功能弹窗
  53. void _showSimpleModelDialog() {
  54. // SmartDialog.show(
  55. // usePenetrate: false,
  56. // clickMaskDismiss: false,
  57. // backDismiss: false,
  58. // keepSingle: true,
  59. // builder: (context) => SimpleModelDialog(
  60. // confirmAction: () {
  61. // Log.d('同意协议了');
  62. // SpUtil.putBool(AppConstant.storageFirstOpen, true);
  63. // _gotoNextPage();
  64. // },
  65. // cancelAction: () {
  66. // //进入基础功能
  67. // Log.d('进入基础功能');
  68. // },
  69. // ),
  70. // );
  71. }
  72. /// 同意了协议之后的初始化第三方与真正跳转逻辑判断
  73. void _gotoNextPage() async {
  74. await AppInitializer.delayInitialize(futureTasks: [
  75. () async {
  76. await FlutterBugly.init(
  77. androidAppId: "12345678",
  78. iOSAppId: "12345678",
  79. );
  80. },
  81. ], normalTasks: [
  82. () {
  83. if (DeviceUtils.isIOS || DeviceUtils.isAndroid) {
  84. jpush.init();
  85. }
  86. },
  87. ]);
  88. // 先查询原生平台有没有保存需要跳转的子路由
  89. // String routerName = await AppChannel.getNativeRouterName();
  90. // Log.d('SplashController - 查询原生平台有没有保存需要跳转的子路由:$routerName');
  91. MainPage.startWithPopAll();
  92. // if (!Utils.isEmpty(routerName)) {
  93. // // 只跳转一次
  94. // Get.offAllNamed(routerName);
  95. // AppChannel.clearNativeRouterName();
  96. // } else {
  97. // // 如果没有经历过GUIDE页面,进入GUIDE,否则进入首页
  98. // MainPage.startWithPopAll();
  99. // }
  100. //跳转页面之后清除 Android 的 SplashScreen 库
  101. // if (Device.isAndroid) {
  102. // AppChannel.skipAndroidSplashScreen();
  103. // }
  104. }
  105. }