import 'dart:ffi'; 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/sp_const.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 AppConfigEntity? configEntityEntity; static String _versionCode = ''; // 是否检测过更新,因为路由混乱导致首页会多次启动,避免重复检测更新,先临时处理 static bool checkedUpdate = false; // 获取用户信息 static Future 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 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(SpConst.prefsKeyAgreementAccepted, accepted); } static bool getAgreementAccepted() { return SpUtil.getInstance().get(SpConst.prefsKeyAgreementAccepted) ?? false; } static void _clearUserData() { SpUtil.getInstance().remove(SpConst.prefsKeyAgreementAccepted); } static void exitApp() { if (Platform.isIOS) { exit(0); } else { //此种方式在IOS上不生效 SystemNavigator.pop(); } } }