app_config_helper.dart
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:wow_english/common/core/user_util.dart';
import '../../models/app_config_entity.dart';
import '../../utils/sp_util.dart';
import '../request/dao/system_dao.dart';
class AppConfigHelper {
static const String _prefsKeyAgreementAccepted = "privacy_agreement_accepted";
static AppConfigEntity? configEntityEntity;
static String _versionCode = '';
// 是否检测过更新,因为路由混乱导致首页会多次启动,避免重复检测更新,先临时处理
static bool checkedUpdate = false;
// 获取用户信息
static Future<AppConfigEntity?> getAppConfig({ bool forceSync = false }) async {
if (forceSync == false && configEntityEntity != null) {
return configEntityEntity;
}
configEntityEntity = await SystemDao.getAppConfig();
return configEntityEntity;
}
// 是否是iOS平台
static bool isIosPlatform() {
return defaultTargetPlatform == TargetPlatform.iOS;
}
// 是否需要隐藏...
static bool shouldHidePay() {
return isIosPlatform() &&
(configEntityEntity?.isAppReviewing() == true || UserUtil.getUser()?.phoneNum == "17730280759");
}
// 获取app版本号
static Future<String> getAppVersion() async {
if (_versionCode.isNotEmpty) {
return _versionCode;
}
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String versionName = packageInfo.version; // 版本号
String versionCode = packageInfo.buildNumber; // 构建号
_versionCode = versionCode;
debugPrint('versionName=$versionName versionCode=$versionCode platForm=${Platform.operatingSystem}');
return versionCode;
}
static void saveAgreementAccepted(bool accepted) {
SpUtil.getInstance().setData(_prefsKeyAgreementAccepted, accepted);
}
static bool getAgreementAccepted() {
return SpUtil.getInstance().get<bool>(_prefsKeyAgreementAccepted) ?? false;
}
static void _clearUserData() {
SpUtil.getInstance().remove(_prefsKeyAgreementAccepted);
}
static void exitApp() {
if (Platform.isIOS) {
exit(0);
} else {
//此种方式在IOS上不生效
SystemNavigator.pop();
}
}
}