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