Browse Source

[feat]统一平台判断

hezihao 6 months ago
parent
commit
d86f1cb05a

+ 14 - 14
lib/base/base_request.dart

@@ -1,10 +1,8 @@
-import 'dart:io';
-
 import 'package:flutter/cupertino.dart';
 import 'package:json_annotation/json_annotation.dart';
-
 import '../device/atmob_platform_info.dart';
 import '../utils/app_info_util.dart';
+import '../widget/platform_util.dart';
 
 part 'base_request.g.dart';
 
@@ -88,35 +86,37 @@ class BaseRequest {
   Map<String, dynamic> toJson() => _$BaseRequestToJson(this);
 
   void initPlatformOS() {
-    if (Platform.isAndroid) {
-      appPlatform = 1;
-      os = "android";
-    } else if (Platform.isIOS) {
+    if (PlatformUtil.isIOS) {
       appPlatform = 2;
       os = "ios";
-    } else if (Platform.isMacOS) {
+    } else if (PlatformUtil.isAndroid) {
+      appPlatform = 1;
+      os = "android";
+    } else if (PlatformUtil.isMacOS) {
       os = "mac";
-    } else if (Platform.isWindows) {
+    } else if (PlatformUtil.isWindows) {
       os = "windows";
-    } else if (Platform.isLinux) {
+    } else if (PlatformUtil.isLinux) {
       os = "linux";
-    } else if (Platform.isFuchsia) {
+    } else if (PlatformUtil.isFuchsia) {
       os = "fuchsia";
     }
-    osVersion = Platform.operatingSystemVersion;
+    osVersion = PlatformUtil.operatingSystemVersion;
 
     debugPrint("os: $os, osVersion: $osVersion");
   }
 
   void initPackageInfo() {
-    if (Platform.isIOS) {
+    if (PlatformUtil.isIOS) {
       packageName = "com.qihuan.zhuiaijianpan";
     } else {
       packageName = appInfoUtil.packageName;
     }
     appVersionName = appInfoUtil.appVersionName;
     appVersionCode = appInfoUtil.appVersionCode;
-    debugPrint("packageName: $packageName, appVersionName: $appVersionName, appVersionCode: $appVersionCode");
+    debugPrint(
+      "packageName: $packageName, appVersionName: $appVersionName, appVersionCode: $appVersionCode",
+    );
   }
 
   void initChannelInfo() {

+ 8 - 6
lib/data/consts/build_config.dart

@@ -2,6 +2,8 @@ import 'dart:io';
 
 import 'package:flutter/foundation.dart';
 
+import '../../widget/platform_util.dart';
+
 final class BuildConfig{
   BuildConfig._();
 
@@ -27,9 +29,9 @@ final class UmengConfig {
   static const umengIosAppKey = "680dcf8479267e02104bfa01";
 
   static String get umengAppKey {
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       return umengAndroidAppKey;
-    } else if (Platform.isIOS) {
+    } else if (PlatformUtil.isIOS) {
       return umengIosAppKey;
     } else {
       return '';
@@ -48,9 +50,9 @@ final class GravityConfig {
   static const gravityIosAccessToken = "ulA57gz2zpioGukhyiQFkTEjfKS1aPxw";
 
   static String get gravityAppId {
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       return gravityAndroidAppId;
-    } else if (Platform.isIOS) {
+    } else if (PlatformUtil.isIOS) {
       return gravityIosAppId;
     } else {
       return '';
@@ -58,9 +60,9 @@ final class GravityConfig {
   }
 
   static String get gravityAccessToken {
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       return gravityAndroidAccessToken;
-    } else if (Platform.isIOS) {
+    } else if (PlatformUtil.isIOS) {
       return gravityIosAccessToken;
     } else {
       return '';

+ 2 - 3
lib/device/platform_android_info.dart

@@ -1,15 +1,14 @@
-import 'dart:io';
-
 import 'package:device_info_plus/device_info_plus.dart';
 import 'package:android_id/android_id.dart';
 import 'package:oaid/oaid_kit.dart';
 // import 'package:oaid/oaid_kit.dart';
 import '../utils/atmob_log.dart';
+import '../widget/platform_util.dart';
 import 'atmob_platform_info.dart';
 
 class PlatformAndroidInfo {
   static Future<void> init() async {
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
       AndroidDeviceInfo androidInfo = await deviceInfoPlugin.androidInfo;
       String? deviceId = await const AndroidId().getId();

+ 2 - 1
lib/device/platform_ios_info.dart

@@ -2,11 +2,12 @@ import 'dart:io';
 
 import 'package:app_tracking_transparency/app_tracking_transparency.dart';
 import 'package:device_info_plus/device_info_plus.dart';
+import '../widget/platform_util.dart';
 import 'atmob_platform_info.dart';
 
 class PlatformIosInfo {
   static Future<void> init() async {
-    if (Platform.isIOS) {
+    if (PlatformUtil.isIOS) {
       DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
       IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo;
       atmobPlatformInfo

+ 3 - 3
lib/main.dart

@@ -42,10 +42,10 @@ void main() async {
   //隐私相关:系统参数&第三方sdk初始化
   await PrivacyCompliance.ensurePolicyGranted(AppInitTask());
 
-  if (Platform.isAndroid) {
+  if (PlatformUtil.isAndroid) {
     //键盘
     KeyboardAndroidPlatform.init();
-  } else if (Platform.isIOS) {
+  } else if (PlatformUtil.isIOS) {
     MethodChanelIOSUtil.initialize();
   }
   AssetLottie(Assets.anim.animSurpriseDialogData).load();
@@ -114,7 +114,7 @@ class MyApp extends StatelessWidget {
   }
 
   buildApp() {
-    return Platform.isAndroid ? _buildMaterialApp() : _buildIosApp();
+    return PlatformUtil.isAndroid ? _buildMaterialApp() : _buildIosApp();
   }
 
   _buildMaterialApp() {

+ 3 - 2
lib/module/character/content/character_group_content_controller.dart

@@ -27,6 +27,7 @@ import '../../../data/consts/event_report.dart';
 import '../../../handler/event_handler.dart';
 import '../../../resource/assets.gen.dart';
 import '../../../utils/error_handler.dart';
+import '../../../widget/platform_util.dart';
 import '../../store/new_discount/new_discount_page.dart';
 import '../../store/suprise/surprise_dialog.dart';
 
@@ -149,7 +150,7 @@ class CharacterGroupContentController extends BaseController {
         }
       },
       onDismiss: () {
-        if (Platform.isAndroid) {
+        if (PlatformUtil.isAndroid) {
           DailyLimiterUtil.run(
             actionKey: 'DiscountTicketDialog', // 唯一标识该弹窗逻辑
             condition:
@@ -164,7 +165,7 @@ class CharacterGroupContentController extends BaseController {
               );
             },
           );
-        }else if (Platform.isIOS) {
+        }else if (PlatformUtil.isIOS) {
           DailyLimiterUtil.run(
             actionKey: 'SurpriseDialog', // 唯一标识该弹窗逻辑
             condition:

+ 3 - 1
lib/module/intro/intro_controller.dart

@@ -16,6 +16,8 @@ import '../../dialog/login/login_dialog.dart';
 import '../../module/new_user/new_user_page.dart';
 import 'package:injectable/injectable.dart';
 
+import '../../widget/platform_util.dart';
+
 @injectable
 class IntroController extends BaseController {
   final tag = "IntroController";
@@ -146,7 +148,7 @@ class IntroController extends BaseController {
   }
 
   void clickBack() {
-    if (GetPlatform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       SystemNavigator.pop();
     }
     exit(0);

+ 3 - 2
lib/module/mine/mine_controller.dart

@@ -24,6 +24,7 @@ import '../../utils/app_info_util.dart';
 import '../../utils/date_util.dart';
 import '../../utils/keyboard_tutorial_util.dart';
 import '../../utils/toast_util.dart';
+import '../../widget/platform_util.dart';
 import '../browser/browser_page.dart';
 import '../login/login_page.dart';
 import '../store/store_page.dart';
@@ -98,9 +99,9 @@ class MineController extends BaseController {
       return;
     }
     int appPlatform = 0;
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       appPlatform = 1;
-    } else if (Platform.isIOS) {
+    } else if (PlatformUtil.isIOS) {
       appPlatform = 2;
     }
     //拼接字符串

+ 4 - 3
lib/module/splash/splash_controller.dart

@@ -15,6 +15,7 @@ import '../../dialog/agreement_dialog.dart';
 import '../../resource/assets.gen.dart';
 import '../../sdk/umeng/umeng_helper.dart';
 import '../../utils/privacy_compliance.dart';
+import '../../widget/platform_util.dart';
 import '../main/main_page.dart';
 
 @injectable
@@ -69,7 +70,7 @@ class SplashController extends BaseController {
   }
 
   void exitApp() {
-    if (GetPlatform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       SystemNavigator.pop();
     }
     exit(0);
@@ -77,10 +78,10 @@ class SplashController extends BaseController {
 
   void _agreePrivacy() async {
     PrivacyCompliance.setPrivacyPolicy(true);
-    if(Platform.isAndroid){
+    if(PlatformUtil.isAndroid){
       await UmengHelper.setPolicyGrantResult(true);
     }
-    else if(Platform.isIOS){
+    else if(PlatformUtil.isIOS){
        UmengHelper.initCommon();
     }
     isAgreePrivacyNextStep();

+ 2 - 2
lib/module/store/new_discount/new_discount_controller.dart

@@ -533,7 +533,7 @@ class NewDiscountController extends BaseController
     _storeDataFuture?.cancel();
     paymentStatusManager.unregisterPaymentSuccessCallback(this);
     if (!isFirstIntoDiscount() && !accountRepository.isVipUser) {
-      if (Platform.isAndroid) {
+      if (PlatformUtil.isAndroid) {
         SurpriseDialog.show(
           clickConfirm: () {
             NewDiscountPage.start();
@@ -541,7 +541,7 @@ class NewDiscountController extends BaseController
           clickCancel: () {},
         );
       }
-      if (Platform.isIOS) {
+      if (PlatformUtil.isIOS) {
         DiscountTicketDialog.show(
           clickConfirm: () {
             NewDiscountPage.start();

+ 2 - 2
lib/module/store/store_controller.dart

@@ -522,7 +522,7 @@ class StoreController extends BaseController implements PaymentStatusCallback {
     if (memberStatusInfo != null && memberStatusInfo!.isMember && isLogin) {
       return;
     }
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       SurpriseDialog.show(
         clickConfirm: () {
           NewDiscountPage.start();
@@ -530,7 +530,7 @@ class StoreController extends BaseController implements PaymentStatusCallback {
         clickCancel: () {},
       );
     }
-    if (Platform.isIOS) {
+    if (PlatformUtil.isIOS) {
       DiscountTicketDialog.show(
         clickConfirm: () {
           NewDiscountPage.start();

+ 2 - 1
lib/utils/default_keyboard_helper.dart

@@ -4,6 +4,7 @@ import 'package:get/get.dart';
 import 'package:keyboard/utils/method_chanel_ios_util.dart';
 import '../plugins/default_keyboard_monitor.dart';
 import '../plugins/keyboard_android_platform.dart';
+import '../widget/platform_util.dart';
 
 /// 默认键盘帮助类
 class DefaultKeyboardHelper {
@@ -20,7 +21,7 @@ class DefaultKeyboardHelper {
     DefaultKeyboardMonitor.registerDefaultKeyboardChangeEvent((isDefault) {
       _handleDefaultKeyboardChange(isDefault);
     });
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       // 马上获取一次数据
       KeyboardAndroidPlatform.isDefaultKeyboard().then((isDefaultKeyboard) {
         _handleDefaultKeyboardChange(isDefaultKeyboard);

+ 5 - 3
lib/utils/image_picker_util.dart

@@ -11,13 +11,15 @@ import '../resource/colors.gen.dart';
 import '../resource/string.gen.dart';
 import 'package:permission_handler/permission_handler.dart';
 
+import '../widget/platform_util.dart';
+
 /// 本地选择图片工具类
 class ImagePickerUtil {
   static final Color _themeColor = ColorName.colorBrand;
 
   /// 请求图片权限(适配 iOS / Android)
   static Future<bool> requestPermissionExtend() async {
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       final androidInfo = await DeviceInfoPlugin().androidInfo;
       if (androidInfo.version.sdkInt <= 32) {
         // Android 版本 <= 32,使用 Permission.storage
@@ -37,7 +39,7 @@ class ImagePickerUtil {
 
   /// 判断是否已有权限
   static Future<bool> hasPermission() async {
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       final androidInfo = await DeviceInfoPlugin().androidInfo;
       if (androidInfo.version.sdkInt <= 32) {
         // Android 版本 <= 32,使用 Permission.storage
@@ -57,7 +59,7 @@ class ImagePickerUtil {
 
   /// 判断是否为“永久拒绝权限”
   static Future<bool> isPermissionPermanentlyDenied() async {
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       final androidInfo = await DeviceInfoPlugin().androidInfo;
       if (androidInfo.version.sdkInt <= 32) {
         // Android 版本 <= 32,使用 Permission.storage

+ 2 - 1
lib/utils/keyboard_tutorial_util.dart

@@ -7,6 +7,7 @@ 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';
+import '../widget/platform_util.dart';
 
 /// 键盘教程工具类
 class KeyboardTutorialUtil {
@@ -51,7 +52,7 @@ class KeyboardTutorialUtil {
 
   /// 是否完成了教程
   static Future<bool> isTutorialComplete() async {
-    if (Platform.isAndroid) {
+    if (PlatformUtil.isAndroid) {
       // 是否有悬浮窗权限
       bool hasFloatingWindowPermission =
       await KeyboardAndroidPlatform.hasFloatingWindowPermission();

+ 6 - 5
lib/utils/method_chanel_ios_util.dart

@@ -9,6 +9,7 @@ import 'package:keyboard/module/store/store_page.dart';
 import 'package:keyboard/utils/default_keyboard_helper.dart';
 
 import '../module/intimacy_scale/intimacy_scale_page.dart';
+import '../widget/platform_util.dart';
 
 class MethodChanelIOSUtil {
   static final MethodChanelIOSUtil _instance = MethodChanelIOSUtil._internal();
@@ -53,7 +54,7 @@ class MethodChanelIOSUtil {
   // 保存token到ios端
   static Future<void> saveAuthToken(String token) async {
     // 通知iOS键盘扩展
-    if (Platform.isIOS) {
+    if (PlatformUtil.isIOS) {
       _channel.invokeMethod('saveAuthToken', {'token': token});
     }
   }
@@ -61,7 +62,7 @@ class MethodChanelIOSUtil {
   // 保存idfv到ios端
   static Future<void> saveIDFV(String? idfv) async {
     // 通知iOS键盘扩展
-    if (Platform.isIOS) {
+    if (PlatformUtil.isIOS) {
       _channel.invokeMethod('saveIDFV', {'idfv': idfv});
     }
   }
@@ -69,7 +70,7 @@ class MethodChanelIOSUtil {
   // 保存idfa到ios端
   static Future<void> saveIDFA(String? idfa) async {
     // 通知iOS键盘扩展
-    if (Platform.isIOS) {
+    if (PlatformUtil.isIOS) {
       _channel.invokeMethod('saveIDFA', {'idfa': idfa});
     }
   }
@@ -77,7 +78,7 @@ class MethodChanelIOSUtil {
   // 保存token到ios端
   static Future<void> clearAuthToken() async {
     // 通知iOS键盘扩展
-    if (Platform.isIOS) {
+    if (PlatformUtil.isIOS) {
       _channel.invokeMethod('clearAuthToken');
     }
   }
@@ -108,7 +109,7 @@ class MethodChanelIOSUtil {
 
   static Future<void> openKeyboardGuide() async {
     // 通知iOS键盘扩展
-    if (Platform.isIOS) {
+    if (PlatformUtil.isIOS) {
       _channel.invokeMethod('openKeyboardGuide');
     }
   }

+ 2 - 0
lib/widget/platform_util.dart

@@ -23,4 +23,6 @@ class PlatformUtil {
 
   static bool get isDesktop =>
       PlatformUtil.isMacOS || PlatformUtil.isWindows || PlatformUtil.isLinux;
+
+  static String get operatingSystemVersion => Platform.operatingSystemVersion;
 }