logo和名称替换
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:hgmj/hj_model/video_model.dart';
|
||||
import 'package:hgmj/hj_page/pre_sale/pre_sale_page.dart';
|
||||
import 'package:hgmj/hj_page/pre_sale/pre_sale_provider.dart';
|
||||
import 'package:hgmj/hj_page/user_center_page/user_center_page.dart';
|
||||
import 'package:hgmj/hj_page/video/video_page.dart';
|
||||
import 'package:hgmj/tools_base/debug_log.dart';
|
||||
import 'package:hgmj/tools_base/event_bus/events.dart';
|
||||
import 'package:hgmj/tools_base/headphone_monitor.dart';
|
||||
import 'package:hgmj/tools_base/loading/loading_helper.dart';
|
||||
import 'package:hgmj/tools_base/toast.dart';
|
||||
import 'package:wydj/hj_model/video_model.dart';
|
||||
import 'package:wydj/hj_page/pre_sale/pre_sale_page.dart';
|
||||
import 'package:wydj/hj_page/pre_sale/pre_sale_provider.dart';
|
||||
import 'package:wydj/hj_page/user_center_page/user_center_page.dart';
|
||||
import 'package:wydj/hj_page/video/video_page.dart';
|
||||
import 'package:wydj/tools_base/debug_log.dart';
|
||||
import 'package:wydj/tools_base/event_bus/events.dart';
|
||||
import 'package:wydj/tools_base/headphone_monitor.dart';
|
||||
import 'package:wydj/tools_base/loading/loading_helper.dart';
|
||||
import 'package:wydj/tools_base/toast.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import '../config/config.dart';
|
||||
@@ -56,7 +56,8 @@ Future? pushToVideoPage({
|
||||
|
||||
// 2. SEED_LINK:跳 ACG 游戏详情
|
||||
if (videoModel?.newsType == 'SEED_LINK') {
|
||||
return Get.to(() => AcgGameDetailPage(id: videoModel?.id ?? ''), preventDuplicates: false);
|
||||
return Get.to(() => AcgGameDetailPage(id: videoModel?.id ?? ''),
|
||||
preventDuplicates: false);
|
||||
}
|
||||
|
||||
// // 3. 短视频:playTime < 300 且非 0(此分支 videoModel 必非 null,playTime 取自它)
|
||||
@@ -93,14 +94,17 @@ void pushToCartoonPage(CartoonMediaInfo? info) {
|
||||
Get.to(NovelDetailPage(info?.id), preventDuplicates: false);
|
||||
return;
|
||||
case 'video':
|
||||
pushToVideoPage(videoModel: VideoModel(id: info?.id, cover: info?.coverV), isCartoon: true);
|
||||
pushToVideoPage(
|
||||
videoModel: VideoModel(id: info?.id, cover: info?.coverV),
|
||||
isCartoon: true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/// 解析 deeplink/h5 链接并执行跳转
|
||||
/// [sourcePage] 链接落到会员/金币页时的下单来源(如首页浮窗),不传走 pushToWalletPage 的默认
|
||||
Future? pushToPageByLink(String? url, {Map<String, dynamic>? arguments, PaySourcePage? sourcePage}) async {
|
||||
Future? pushToPageByLink(String? url,
|
||||
{Map<String, dynamic>? arguments, PaySourcePage? sourcePage}) async {
|
||||
if (url?.isNotEmpty != true) return null;
|
||||
|
||||
Uri? uri;
|
||||
@@ -124,7 +128,8 @@ Future? pushToPageByLink(String? url, {Map<String, dynamic>? arguments, PaySourc
|
||||
if (uri.queryParameters["inner"] == "1") {
|
||||
// InAppWebView 是 PlatformView,创建时会重建渲染 Surface;视频在播放(Texture持续产帧)会导致部分机型画面放大/闪烁,先暂停所有播放
|
||||
HeadphoneMonitor.instance.pauseAll();
|
||||
return Get.to(H5Page(url: url!, showTitle: false, showClose: true), popGesture: true);
|
||||
return Get.to(H5Page(url: url!, showTitle: false, showClose: true),
|
||||
popGesture: true);
|
||||
}
|
||||
return launchUrlToWeb(url!);
|
||||
}
|
||||
@@ -133,7 +138,8 @@ Future? pushToPageByLink(String? url, {Map<String, dynamic>? arguments, PaySourc
|
||||
}
|
||||
|
||||
/// 处理 yinseinner:// 内部 scheme 跳转
|
||||
Future? _handleYinseInnerLink(String host, Map<String, dynamic> arguments, [PaySourcePage? sourcePage]) async {
|
||||
Future? _handleYinseInnerLink(String host, Map<String, dynamic> arguments,
|
||||
[PaySourcePage? sourcePage]) async {
|
||||
switch (host) {
|
||||
case "submodule": // 亚模块分类
|
||||
eventBus.emit(YinseinnerModel(routeName: "module", id: arguments["id"]));
|
||||
@@ -145,7 +151,8 @@ Future? _handleYinseInnerLink(String host, Map<String, dynamic> arguments, [PayS
|
||||
eventBus.emit(YinseinnerModel(routeName: "community_page"));
|
||||
return null;
|
||||
case "community_module": // 社区
|
||||
eventBus.emit(YinseinnerModel(routeName: "community_module", id: arguments["id"]));
|
||||
eventBus.emit(
|
||||
YinseinnerModel(routeName: "community_module", id: arguments["id"]));
|
||||
return null;
|
||||
case "vip_page": // 会员中心
|
||||
return pushToWalletPage(vipId: arguments['id'], sourcePage: sourcePage);
|
||||
@@ -159,11 +166,14 @@ Future? _handleYinseInnerLink(String host, Map<String, dynamic> arguments, [PayS
|
||||
case "rankinglist": // 排行榜
|
||||
return Get.to(RankMainPage(), preventDuplicates: false);
|
||||
case "postdetail": // 帖子详情
|
||||
return Get.to(() => PostDetailPage(argument: PostDetailPageArgument(id: arguments["id"])));
|
||||
return Get.to(() => PostDetailPage(
|
||||
argument: PostDetailPageArgument(id: arguments["id"])));
|
||||
case "video_page": // 长视频播放页
|
||||
return Get.to(() => VideoPage(model:VideoModel(id:arguments["id"])), preventDuplicates: false);
|
||||
return Get.to(() => VideoPage(model: VideoModel(id: arguments["id"])),
|
||||
preventDuplicates: false);
|
||||
case "taskhall": // 福利任务
|
||||
return Get.to(() => const WelfareHomePage(index: 1), preventDuplicates: false);
|
||||
return Get.to(() => const WelfareHomePage(index: 1),
|
||||
preventDuplicates: false);
|
||||
case "advancepage": // 预售
|
||||
return Get.to(() => const PreSalePage());
|
||||
case "live_streaming": // 直播
|
||||
@@ -243,9 +253,12 @@ Future? pushToPersonCenter(dynamic id, {int? type}) {
|
||||
/// [sourcePage] 落地页下单时的来源。不传时各分支用各自的默认:会员页记会员中心
|
||||
/// (绝大多数入口都是「跳进会员页再下单」),金币页记 UNKNOWN(没有专属枚举,别拿会员的顶上);
|
||||
/// 有独立来源的(H5 活动等)自己传
|
||||
Future pushToWalletPage({int? tabPosition, String? vipId, PaySourcePage? sourcePage}) async {
|
||||
Future pushToWalletPage(
|
||||
{int? tabPosition, String? vipId, PaySourcePage? sourcePage}) async {
|
||||
if (tabPosition == 1) {
|
||||
return Get.to(MineChargeCoinPage(sourcePage: sourcePage ?? PaySourcePage.unknown), preventDuplicates: false);
|
||||
return Get.to(
|
||||
MineChargeCoinPage(sourcePage: sourcePage ?? PaySourcePage.unknown),
|
||||
preventDuplicates: false);
|
||||
}
|
||||
return Get.to(
|
||||
MineChargeVipPage(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:hgmj/tools_base/global_store/store.dart';
|
||||
import 'package:wydj/tools_base/global_store/store.dart';
|
||||
|
||||
import '../hj_page/mine/mine_setting/mine_password_logic.dart';
|
||||
import '../hj_page/mine/mine_setting/mine_password_page.dart';
|
||||
@@ -16,14 +16,18 @@ class AppRoutes {
|
||||
page: () => const SplashPage(),
|
||||
middlewares: [SplashPasswordMiddleware()],
|
||||
),
|
||||
GetPage(name: MinePasswordPage.routeName, page: () => const MinePasswordPage()), //设置锁屏密码
|
||||
GetPage(
|
||||
name: MinePasswordPage.routeName,
|
||||
page: () => const MinePasswordPage()), //设置锁屏密码
|
||||
];
|
||||
}
|
||||
|
||||
class SplashPasswordMiddleware extends GetMiddleware {
|
||||
@override
|
||||
RouteSettings? redirect(String? route) {
|
||||
if (globalStore.password.isEmpty || globalStore.isUnlocked) return super.redirect(route);
|
||||
return RouteSettings(name: MinePasswordPage.routeName, arguments: MinePasswordType.check);
|
||||
if (globalStore.password.isEmpty || globalStore.isUnlocked)
|
||||
return super.redirect(route);
|
||||
return RouteSettings(
|
||||
name: MinePasswordPage.routeName, arguments: MinePasswordType.check);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user