import 'dart:convert'; import 'package:bbyyy/beans/user_bean_entity.dart'; import 'package:bbyyy/https/MyDio.dart'; import 'package:bbyyy/https/my_request.dart'; import 'package:bbyyy/my_tools/dims.dart'; import 'package:bbyyy/my_tools/easy_loading/easy_loading.dart'; import 'package:bbyyy/my_tools/event_bus.dart'; import 'package:bbyyy/my_tools/my_colors.dart'; import 'package:bbyyy/my_tools/my_cookie.dart'; import 'package:bbyyy/my_tools/my_datas.dart'; import 'package:bbyyy/nsq/nsq.dart' as Nsq; import 'package:bbyyy/paegs/gang_page/gang_page.dart'; import 'package:bbyyy/paegs/home_page/home_page.dart'; import 'package:bbyyy/paegs/mine_page/mine_page.dart'; import 'package:bbyyy/paegs/msg_page/msg_page.dart'; import 'package:bbyyy/paegs/root_page/root_page_view.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; class RootPage extends StatefulWidget { @override _RootPageState createState() => _RootPageState(); } class _RootPageState extends State { PageController pageController = PageController(initialPage: 0); DateTime lastPopTime; @override void initState() { super.initState(); MyCookie().initP(); Nsq.ConnectServer( Nsq.handlerMessage, // 接收消息处理逻辑 // serverIp: '172.16.104.14', serverIp: MyCookie().server, // 服务端返回 serverPort: 4150, // 服务端返回 topic: '${MyCookie().getUID()}', // 主题订阅,服务端返回 channel: '${MyCookie().getUID()}', // 服务端返回uid clientId: '客户uid', // 服务端返回uid hostname: '主机名', // 服务端返回 ); EventBus().emit('检查粘贴板'); EventBus().on('ChangePage', (arg) { if (RootPageView().bNIndex == 3) { queryPersonalInformation(); } pageController.jumpToPage(RootPageView().bNIndex); setState(() {}); }); MyData().init(context); queryPersonalInformation(); checkForUpdates(context); } @override Widget build(BuildContext context) { return WillPopScope( onWillPop: () async { if (lastPopTime == null || DateTime.now().difference(lastPopTime) > Duration(seconds: 2)) { lastPopTime = DateTime.now(); EasyLoading.showToast('再按一次退出'); } else { lastPopTime = DateTime.now(); await SystemChannels.platform.invokeMethod('SystemNavigator.pop'); } return false; }, child: Scaffold( resizeToAvoidBottomInset: false, backgroundColor: Colors.transparent, body: Column( children: [ Expanded( child: PageView( controller: pageController, children: [HomePage(), GangPage(), MsgPage(), MinePage()], physics: NeverScrollableScrollPhysics(), ), ), RootPageView().bottomNavigationBar(), ], ), ), ); } void queryPersonalInformation() { MyDio().query({ "key": "user", "filters": { "conditions": ["uid == ${MyCookie().getUID()}"] }, "dims": userDims, "paging": [1, 20] }, (response, hasError) { if (!hasError) { UserBeanEntity entity = UserBeanEntity().fromJson(json.decode(response.data.toString())); MyCookie().userBean = entity.data.data[0]; EventBus().emit('userChange'); } }, (error) {}); } }