Blame view

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