页面跳转
This commit is contained in:
parent
d9df1967ae
commit
60c7ff6240
|
|
@ -47,3 +47,10 @@ class StartGames extends Event {
|
|||
|
||||
StartGames(this.gameId);
|
||||
}
|
||||
|
||||
//tab切换
|
||||
class TabSwitch extends Event {
|
||||
final int index;
|
||||
|
||||
TabSwitch(this.index);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import '../../beans/epg_bean.dart';
|
||||
import '../../beans/home_info_bean.dart';
|
||||
import '../../common/EventBusUtil.dart';
|
||||
import '../../network/NetworkConfig.dart';
|
||||
import '../game/game_info_page.dart';
|
||||
import '../me/set/agreement_page.dart';
|
||||
|
||||
class HomeRecommendPage extends StatefulWidget {
|
||||
final HomeInfoBean homeInfoBean;
|
||||
|
|
@ -89,7 +91,7 @@ class _HomeRecommendState extends State<HomeRecommendPage> with AutomaticKeepAli
|
|||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
_jumpToPage(widget.homeInfoBean.epgList?[0]);
|
||||
_jumpToPage(widget.homeInfoBean.epgList![0]);
|
||||
},
|
||||
child: SizedBox(
|
||||
width: w99,
|
||||
|
|
@ -156,7 +158,7 @@ class _HomeRecommendState extends State<HomeRecommendPage> with AutomaticKeepAli
|
|||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
_jumpToPage(widget.homeInfoBean.epgList?[1]);
|
||||
_jumpToPage(widget.homeInfoBean.epgList![1]);
|
||||
},
|
||||
child: SizedBox(
|
||||
width: w99,
|
||||
|
|
@ -223,7 +225,7 @@ class _HomeRecommendState extends State<HomeRecommendPage> with AutomaticKeepAli
|
|||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
_jumpToPage(widget.homeInfoBean.epgList?[2]);
|
||||
_jumpToPage(widget.homeInfoBean.epgList![2]);
|
||||
},
|
||||
child: SizedBox(
|
||||
width: w99,
|
||||
|
|
@ -804,8 +806,14 @@ class _HomeRecommendState extends State<HomeRecommendPage> with AutomaticKeepAli
|
|||
EventBusUtil.fire(StartGames(gameId));
|
||||
}
|
||||
|
||||
Future<void> _launchUrl(url) async {
|
||||
if (!await launchUrl(url)) {
|
||||
throw Exception('Could not launch $url');
|
||||
}
|
||||
}
|
||||
|
||||
///跳转页面
|
||||
_jumpToPage(value) {
|
||||
_jumpToPage(EpgBean value) {
|
||||
if (NetworkConfig.token == "") {
|
||||
Navigator.pushNamed(context, "/LoginPage");
|
||||
return;
|
||||
|
|
@ -823,15 +831,25 @@ class _HomeRecommendState extends State<HomeRecommendPage> with AutomaticKeepAli
|
|||
break;
|
||||
case 2: //app页面
|
||||
switch (value.resId) {
|
||||
case "shop": //商城
|
||||
case "Shop": //商城
|
||||
EventBusUtil.fire(TabSwitch(2));
|
||||
break;
|
||||
case "Task": //任务中心
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 3: //内部H5
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => AgreementPage(
|
||||
title: "活动",
|
||||
url: "${value.resId}",
|
||||
)),
|
||||
);
|
||||
break;
|
||||
case 4: //外部H5
|
||||
_launchUrl(Uri.parse('${value.resId}'));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,14 +5,18 @@ import 'package:cached_network_image/cached_network_image.dart';
|
|||
import 'package:carousel_slider/carousel_slider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:game/common/EventBusUtil.dart';
|
||||
import 'package:game/dialog/sign_dialog.dart';
|
||||
import 'package:game/network/NetworkConfig.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import '../../beans/epg_bean.dart';
|
||||
import '../../beans/home_info_bean.dart';
|
||||
import '../../beans/home_ranking_bean.dart';
|
||||
import '../../beans/sign_bean.dart';
|
||||
import '../../common/func.dart';
|
||||
import '../game/game_info_page.dart';
|
||||
import '../me/set/agreement_page.dart';
|
||||
import 'home_ranking_page.dart';
|
||||
import 'home_recommend_page.dart';
|
||||
import 'my_home_model.dart';
|
||||
|
|
@ -441,26 +445,50 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||
}).toList();
|
||||
}
|
||||
|
||||
Future<void> _launchUrl(url) async {
|
||||
if (!await launchUrl(url)) {
|
||||
throw Exception('Could not launch $url');
|
||||
}
|
||||
}
|
||||
|
||||
///跳转页面
|
||||
_jumpToPage(value) {
|
||||
_jumpToPage(EpgBean value) {
|
||||
if (NetworkConfig.token == "") {
|
||||
Navigator.pushNamed(context, "/LoginPage");
|
||||
return;
|
||||
}
|
||||
switch (value.resType) {
|
||||
case 1: //游戏详情
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
//导航打开新视图
|
||||
builder: (context) => GameInfoPage(
|
||||
gameId: "${value.resId}",
|
||||
),
|
||||
));
|
||||
break;
|
||||
case 2: //app页面
|
||||
switch (value.resId) {
|
||||
case "shop": //商城
|
||||
case "Shop": //商城
|
||||
EventBusUtil.fire(TabSwitch(2));
|
||||
break;
|
||||
case "Task": //任务中心
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 3: //内部H5
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => AgreementPage(
|
||||
title: "活动",
|
||||
url: "${value.resId}",
|
||||
)),
|
||||
);
|
||||
break;
|
||||
case 4: //外部H5
|
||||
_launchUrl(Uri.parse('${value.resId}'));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
|||
|
||||
int currentIndex = 0;
|
||||
late StreamSubscription<StartGames> _startGamesEvent;
|
||||
late StreamSubscription<TabSwitch> _tabSwitchEvent;
|
||||
|
||||
late StreamSubscription subscription;
|
||||
final HomeModel _viewModel = HomeModel();
|
||||
|
|
@ -58,9 +59,22 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
|||
}
|
||||
FunctionUtil.loading();
|
||||
NetworkConfig.gameId = event.gameId;
|
||||
print("_startGamesEvent");
|
||||
_viewModel.playGame(event.gameId);
|
||||
});
|
||||
|
||||
///tab切换
|
||||
_tabSwitchEvent = EventBusUtil.listen((event) {
|
||||
if (NetworkConfig.token == "") {
|
||||
Navigator.pushNamed(context, "/LoginPage");
|
||||
return;
|
||||
}
|
||||
setState(() {
|
||||
currentIndex = event.index;
|
||||
});
|
||||
pageController.jumpToPage(event.index);
|
||||
});
|
||||
|
||||
subscription = _viewModel.streamController.stream.listen((event) {
|
||||
String code = event['code'];
|
||||
if (code.isNotEmpty) {
|
||||
|
|
@ -99,6 +113,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
|||
|
||||
///线路不足游戏开始排队
|
||||
case "gameQueue":
|
||||
EasyLoading.dismiss();
|
||||
QueueBean queueBean = event['data'];
|
||||
String gameId = event['gameId'];
|
||||
// FunctionUtil.bottomNoSheetDialog(
|
||||
|
|
@ -197,6 +212,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
|||
void dispose() {
|
||||
// TODO: implement dispose
|
||||
_startGamesEvent.cancel();
|
||||
_tabSwitchEvent.cancel();
|
||||
subscription.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:flutter/gestures.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:game/common/func.dart';
|
||||
|
||||
import '../me/set/agreement_page.dart';
|
||||
import 'login_model.dart';
|
||||
|
|
@ -69,6 +70,7 @@ class _LoginPageState extends State<LoginPage> {
|
|||
EasyLoading.showToast("请输入手机号");
|
||||
return;
|
||||
}
|
||||
FunctionUtil.loading();
|
||||
_startCountdown();
|
||||
_viewModel.sendPhoneNumber(_phoneController.text);
|
||||
}
|
||||
|
|
@ -87,6 +89,7 @@ class _LoginPageState extends State<LoginPage> {
|
|||
EasyLoading.showToast("请勾选协议");
|
||||
return;
|
||||
}
|
||||
FunctionUtil.loading();
|
||||
_viewModel.login(_phoneController.text, _codeController.text);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'agreement_page.dart';
|
||||
|
||||
class SettingPage extends StatefulWidget {
|
||||
const SettingPage({super.key});
|
||||
|
||||
|
|
@ -56,7 +58,14 @@ class _SettingPageState extends State<SettingPage> {
|
|||
///用户协议
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
// Navigator.pushNamed(context, "/ExpensesPage");
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => const AgreementPage(
|
||||
title: "用户协议",
|
||||
url: "https://shhuanmeng.com/yonghuxieyi.html",
|
||||
)),
|
||||
);
|
||||
},
|
||||
child: Container(
|
||||
height: h60,
|
||||
|
|
@ -91,7 +100,14 @@ class _SettingPageState extends State<SettingPage> {
|
|||
///隐私政策
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
// Navigator.pushNamed(context, "/ExpensesPage");
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => const AgreementPage(
|
||||
title: "隐私政策",
|
||||
url: "https://shhuanmeng.com/yinsixieyi.html",
|
||||
)),
|
||||
);
|
||||
},
|
||||
child: Container(
|
||||
height: h60,
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ dependencies:
|
|||
shared_preferences: ^2.2.3
|
||||
webview_flutter: ^4.8.0
|
||||
package_info: ^2.0.2
|
||||
url_launcher: ^6.3.1
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user