Blame view

lib/common/core/app_config_helper.dart 2.3 KB
caec5687   吴启风   feat:header传应用版本号
1
  import 'dart:io';
28f20da9   吴启风   feat:针对apple审核对支付...
2
  
caec5687   吴启风   feat:header传应用版本号
3
  import 'package:flutter/cupertino.dart';
911794fd   吴启风   feat:审核控制增加ios平台条件判断
4
  import 'package:flutter/foundation.dart';
258578de   吴启风   feat:修复ios上退出应用失效问题
5
  import 'package:flutter/services.dart';
caec5687   吴启风   feat:header传应用版本号
6
  import 'package:package_info_plus/package_info_plus.dart';
28f20da9   吴启风   feat:针对apple审核对支付...
7
8
9
  import 'package:wow_english/common/core/user_util.dart';
  
  import '../../models/app_config_entity.dart';
2a9895f6   吴启风   feat:首次启动隐私协议弹窗
10
  import '../../utils/sp_util.dart';
28f20da9   吴启风   feat:针对apple审核对支付...
11
12
13
14
  import '../request/dao/system_dao.dart';
  
  class AppConfigHelper {
  
8616f94b   吴启风   feat:sp持久化key收入各业务内部
15
16
    static const String _prefsKeyAgreementAccepted = "privacy_agreement_accepted";
  
cde7505e   吴启风   feat:应用内升级
17
    static AppConfigEntity? configEntityEntity;
28f20da9   吴启风   feat:针对apple审核对支付...
18
  
cde7505e   吴启风   feat:应用内升级
19
    static String _versionCode = '';
caec5687   吴启风   feat:header传应用版本号
20
  
2c079546   吴启风   feat:应用内更新接口替换
21
22
23
    // 是否检测过更新,因为路由混乱导致首页会多次启动,避免重复检测更新,先临时处理
    static bool checkedUpdate = false;
  
cde7505e   吴启风   feat:应用内升级
24
    // 获取用户信息
3e72c6ce   吴启风   feat:登录刷新配置信息
25
26
    static Future<AppConfigEntity?> getAppConfig({ bool forceSync = false }) async {
      if (forceSync == false && configEntityEntity != null) {
cde7505e   吴启风   feat:应用内升级
27
28
        return configEntityEntity;
      }
28f20da9   吴启风   feat:针对apple审核对支付...
29
      configEntityEntity = await SystemDao.getAppConfig();
cde7505e   吴启风   feat:应用内升级
30
      return configEntityEntity;
28f20da9   吴启风   feat:针对apple审核对支付...
31
32
    }
  
911794fd   吴启风   feat:审核控制增加ios平台条件判断
33
34
35
36
37
    // 是否是iOS平台
    static bool isIosPlatform() {
      return defaultTargetPlatform == TargetPlatform.iOS;
    }
  
28f20da9   吴启风   feat:针对apple审核对支付...
38
39
    // 是否需要隐藏...
    static bool shouldHidePay() {
911794fd   吴启风   feat:审核控制增加ios平台条件判断
40
41
      return isIosPlatform() &&
          (configEntityEntity?.isAppReviewing() == true || UserUtil.getUser()?.phoneNum == "17730280759");
28f20da9   吴启风   feat:针对apple审核对支付...
42
    }
caec5687   吴启风   feat:header传应用版本号
43
44
45
  
    // 获取app版本号
    static Future<String> getAppVersion() async {
cde7505e   吴启风   feat:应用内升级
46
47
      if (_versionCode.isNotEmpty) {
        return _versionCode;
caec5687   吴启风   feat:header传应用版本号
48
49
      }
      PackageInfo packageInfo = await PackageInfo.fromPlatform();
cde7505e   吴启风   feat:应用内升级
50
51
52
      String versionName = packageInfo.version; // 版本号
      String versionCode = packageInfo.buildNumber; // 构建号
      _versionCode = versionCode;
caec5687   吴启风   feat:header传应用版本号
53
  
cde7505e   吴启风   feat:应用内升级
54
      debugPrint('versionName=$versionName versionCode=$versionCode platForm=${Platform.operatingSystem}');
caec5687   吴启风   feat:header传应用版本号
55
56
      return versionCode;
    }
2a9895f6   吴启风   feat:首次启动隐私协议弹窗
57
58
  
    static void saveAgreementAccepted(bool accepted) {
8616f94b   吴启风   feat:sp持久化key收入各业务内部
59
      SpUtil.getInstance().setData(_prefsKeyAgreementAccepted, accepted);
2a9895f6   吴启风   feat:首次启动隐私协议弹窗
60
61
62
    }
  
    static bool getAgreementAccepted() {
8616f94b   吴启风   feat:sp持久化key收入各业务内部
63
      return SpUtil.getInstance().get<bool>(_prefsKeyAgreementAccepted) ?? false;
2a9895f6   吴启风   feat:首次启动隐私协议弹窗
64
65
66
    }
  
    static void _clearUserData() {
8616f94b   吴启风   feat:sp持久化key收入各业务内部
67
      SpUtil.getInstance().remove(_prefsKeyAgreementAccepted);
2a9895f6   吴启风   feat:首次启动隐私协议弹窗
68
    }
258578de   吴启风   feat:修复ios上退出应用失效问题
69
70
71
72
73
74
75
76
77
  
    static void exitApp() {
      if (Platform.isIOS) {
        exit(0);
      } else {
        //此种方式在IOS上不生效
        SystemNavigator.pop();
      }
    }
28f20da9   吴启风   feat:针对apple审核对支付...
78
  }