Преглед на файлове

[feat]键盘教程页,第一次进首页时,显示键盘教程页

hezihao преди 7 месеца
родител
ревизия
1b488204e8

+ 3 - 0
lib/data/consts/constants.dart

@@ -44,6 +44,9 @@ class Constants {
 
   // 是否首次显示键盘引导
   static const String isFirstShowKeyboardGuide = 'isFirstShowKeyboardGuide';
+
+  // 是否首先显示键盘教程
+  static const String isFirstShowKeyboardTutorial = 'isFirstShowKeyboardTutorial';
 }
 
 String getBaseUrl() {

+ 4 - 0
lib/module/keyboard_tutorial/keyboard_tutorial_controller.dart

@@ -47,6 +47,7 @@ class KeyboardTutorialController extends BaseController {
 
   /// 点击跳过
   void clickSkip() {
+    KeyboardTutorialUtil.setNotFirstShowKeyboardTutorial();
     Get.back();
   }
 
@@ -62,6 +63,9 @@ class KeyboardTutorialController extends BaseController {
 
   /// 跳转到键盘引导页
   void jump2KeyboardGuide() {
+    // 标记,已经完成了键盘引导
+    KeyboardTutorialUtil.setNotFirstShowKeyboardTutorial();
+    // 跳转,并关闭自己
     KeyboardGuidePage.startAndOffMe();
   }
 

+ 3 - 0
lib/module/main/main_controller.dart

@@ -12,6 +12,7 @@ import '../../base/base_controller.dart';
 import '../../resource/assets.gen.dart';
 import '../../resource/string.gen.dart';
 
+import '../../utils/keyboard_tutorial_util.dart';
 import '../character/character_view.dart';
 import '../keyboard/keyboard_view.dart';
 import '../mine/mine_view.dart';
@@ -88,6 +89,8 @@ class MainController extends BaseController {
   @override
   void onInit() {
     super.onInit();
+    // 第一次显示首页,显示键盘引导页
+    KeyboardTutorialUtil.firstMainPageShowTutorial();
   }
 }
 

+ 20 - 0
lib/utils/keyboard_tutorial_util.dart

@@ -1,3 +1,6 @@
+import 'package:keyboard/data/consts/constants.dart';
+import 'package:keyboard/utils/mmkv_util.dart';
+
 import '../module/keyboard_guide/keyboard_guide_page.dart';
 import '../module/keyboard_tutorial/keyboard_tutorial_page.dart';
 import '../plugins/keyboard_android_platform.dart';
@@ -16,6 +19,23 @@ class KeyboardTutorialUtil {
     }
   }
 
+  /// 第一次显示首页,显示键盘引导页
+  static firstMainPageShowTutorial() {
+    if (_isFirstShowKeyboardTutorial()) {
+      start();
+    }
+  }
+
+  /// 是否首次显示键盘引导
+  static bool _isFirstShowKeyboardTutorial() {
+    return KVUtil.getBool(Constants.isFirstShowKeyboardTutorial, true);
+  }
+
+  /// 设置为非首次键盘引导
+  static void setNotFirstShowKeyboardTutorial() {
+    KVUtil.putBool(Constants.isFirstShowKeyboardTutorial, false);
+  }
+
   /// 是否完成了教程
   static Future<bool> isTutorialComplete() async {
     // 是否有悬浮窗权限