启动图,签名更换

This commit is contained in:
谢宇宁
2026-10-08 20:32:46 +07:00
parent 5064de7399
commit 36f57898de
12 changed files with 35 additions and 27 deletions
+1 -1
View File
@@ -20,7 +20,7 @@ class LineErrorDialog extends StatelessWidget {
const LineErrorDialog({super.key, this.callback});
String get officialUrl => '91dj1.net';
String get officialUrl => 'huangguomj.net';
@override
Widget build(BuildContext context) {
+2 -2
View File
@@ -31,8 +31,8 @@ class Address {
/// 图片加载地址
static String? baseImagePath;
/// 落地页地址 默认地址
static String groundUrl = '';
/// 落地页地址(永久域名),后台下发 GUIDE 时覆盖
static String groundUrl = 'https://huangguomj.net';
/// 备用落地页地址 默认地址
static String backUpURl = '';
/// tg群里地址 默认地址
@@ -17,7 +17,8 @@ class AcgGameRecommendPage extends StatefulWidget {
State<AcgGameRecommendPage> createState() => _AcgGameRecommendPageState();
}
class _AcgGameRecommendPageState extends State<AcgGameRecommendPage> with UniqueTagMixin {
class _AcgGameRecommendPageState extends State<AcgGameRecommendPage>
with UniqueTagMixin {
@override
Widget build(BuildContext context) {
return GetBuilder<AcgGameRecommendLogic>(
-5
View File
@@ -21,10 +21,8 @@ import '../web_page/h5_page.dart';
import 'collec_history_buy/col_his_buy_page.dart';
import 'identity/mine_identity_page.dart';
import 'message/message_center_page.dart';
import 'mine_drive/mine_drive_page.dart';
import 'mine_following/mine_following_view.dart';
import 'mine_post/mine_publish_main_page.dart';
import 'mine_setting/mine_code_page.dart';
import 'mine_setting/mine_password_logic.dart';
import 'mine_setting/mine_password_page.dart';
import 'mine_setting/mine_setting_page.dart';
@@ -48,13 +46,10 @@ class MineMainLogic extends GetxController with GetTickerProviderStateMixin {
/// 常用功能: (标题, 图标, 点击事件)
List<(String, String, void Function())> get commonlyUsedFunction => [
("创作中心", 'mine_menu_1.png'.mineImgPath, () => Get.to(MinePublishPostPage(), preventDuplicates: false)),
("意见反馈", 'mine_menu_2.png'.mineImgPath, () => Get.to(() => const MineFeedbackPage())),
("我的下载", 'mine_follow.png'.mineImgPath, () => Get.to(() => VideoCachePage())),
("我的关注", 'mine_offical.png'.mineImgPath, () => Get.to(() => MineFollowingPage())),
("分享邀请", 'mine_menu_5.png'.mineImgPath, () => Get.to(() => MineSharePage())),
("领取兑换", 'mine_menu_6.png'.mineImgPath, () => Get.to(() => MineExchangeCodePage(type: 1))),
("官方社群", 'mine_menu_7.png'.mineImgPath, () => Get.to(() => MineDrivePage())),
("应用推荐", 'mine_menu_8.png'.mineImgPath, () => Get.to(() => const WelfareHomePage(index: 1), preventDuplicates: false)),
("账号凭证", 'mine_menu_9.png'.mineImgPath, () => Get.dialog(MineAccountIdentityPage())),
("锁屏密码", 'mine_menu_10.png'.mineImgPath, _toggleLockPassword),
+17 -8
View File
@@ -82,7 +82,8 @@ class DeviceInfoService {
/// note_this:不要修改这个值
static const iosBundleId = "yinse_opera";
static const naticeChannel = 'com.yinse/device'; //原生通道(设备/视频/编解码信息)
static const requestChannel = 'com.yinse/request'; //原生系统桥(现只剩换启动图标 changeIcon)
static const requestChannel =
'com.yinse/request'; //原生系统桥(现只剩换启动图标 changeIcon)
/// 外部调用入口
static Future<void> init() async {
@@ -122,7 +123,9 @@ class DeviceInfoService {
/// 拼装 UA。[deviceId] 可覆盖默认 deviceId
static String genUserAgent({String? deviceId}) {
final Map<String, String?> params = {
"DevID": (deviceId == null || deviceId.isEmpty) ? DeviceInfoService.deviceId : deviceId,
"DevID": (deviceId == null || deviceId.isEmpty)
? DeviceInfoService.deviceId
: deviceId,
"DevType": DeviceInfoService.devType,
"SysType": Platform.operatingSystem,
"Ver": Config.innerVersion,
@@ -133,7 +136,8 @@ class DeviceInfoService {
'device_model': DeviceInfoService.model,
};
params.removeWhere((key, value) => value == null || value.isEmpty);
final ua = Uri.encodeComponent(params.entries.map((e) => "${e.key}=${e.value}").join(";"));
final ua = Uri.encodeComponent(
params.entries.map((e) => "${e.key}=${e.value}").join(";"));
return ua;
}
@@ -147,12 +151,14 @@ class DeviceInfoService {
return oldUa;
}
final newUa = genUserAgent(deviceId: deviceId);
if (TextUtil.isNotEmpty(newUa)) lightKV.setString(StoreKeys.UA_CACHE, newUa);
if (TextUtil.isNotEmpty(newUa))
lightKV.setString(StoreKeys.UA_CACHE, newUa);
return newUa;
}
/// 清除 UA 缓存
static Future clearCachedUserAgent() => lightKV.setString(StoreKeys.UA_CACHE, null);
static Future clearCachedUserAgent() =>
lightKV.setString(StoreKeys.UA_CACHE, null);
/// 从剪切板 json 里取推广 tid,取不到返回空串
static Future<String> fetchTraceId() async {
@@ -223,7 +229,8 @@ class DeviceInfoService {
}
/// Android 回写 SP + 文件
static Future<String> _persistAndroid(SharedPreferences prefs, String id) async {
static Future<String> _persistAndroid(
SharedPreferences prefs, String id) async {
await prefs.setString(StoreKeys.DEVICE_ID, id);
await _writeIdFile(id);
return id;
@@ -257,7 +264,7 @@ class DeviceInfoService {
}
if (_isInvalidId(raw)) raw = const Uuid().v4();
// 业务规则:91jd_ 前缀,去空格,限制 50 字符(日志系统约束)
return '91dj_${raw.replaceAll(' ', '')}'.limit(50);
return 'hgmj_${raw.replaceAll(' ', '')}'.limit(50);
}
/// 脏值检测:空 / 太短 / 全 0 / 已知脏值
@@ -306,7 +313,9 @@ class DeviceInfoService {
static Future<String> getChannel() async {
if (!Platform.isAndroid) return "";
try {
return await const MethodChannel(naticeChannel).invokeMethod("getChannel") ?? "";
return await const MethodChannel(naticeChannel)
.invokeMethod("getChannel") ??
"";
} on PlatformException {
return "";
}