root_page.dart 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import 'dart:convert';
  2. import 'package:bbyyy/beans/user_bean_entity.dart';
  3. import 'package:bbyyy/https/MyDio.dart';
  4. import 'package:bbyyy/https/my_request.dart';
  5. import 'package:bbyyy/my_tools/dims.dart';
  6. import 'package:bbyyy/my_tools/easy_loading/easy_loading.dart';
  7. import 'package:bbyyy/my_tools/event_bus.dart';
  8. import 'package:bbyyy/my_tools/my_colors.dart';
  9. import 'package:bbyyy/my_tools/my_cookie.dart';
  10. import 'package:bbyyy/my_tools/my_datas.dart';
  11. import 'package:bbyyy/nsq/nsq.dart' as Nsq;
  12. import 'package:bbyyy/paegs/gang_page/gang_page.dart';
  13. import 'package:bbyyy/paegs/home_page/home_page.dart';
  14. import 'package:bbyyy/paegs/mine_page/mine_page.dart';
  15. import 'package:bbyyy/paegs/msg_page/msg_page.dart';
  16. import 'package:bbyyy/paegs/root_page/root_page_view.dart';
  17. import 'package:flutter/material.dart';
  18. import 'package:flutter/services.dart';
  19. class RootPage extends StatefulWidget {
  20. @override
  21. _RootPageState createState() => _RootPageState();
  22. }
  23. class _RootPageState extends State<RootPage> {
  24. PageController pageController = PageController(initialPage: 0);
  25. DateTime lastPopTime;
  26. @override
  27. void initState() {
  28. super.initState();
  29. MyCookie().initP();
  30. Nsq.ConnectServer(
  31. Nsq.handlerMessage, // 接收消息处理逻辑
  32. // serverIp: '172.16.104.14',
  33. serverIp: MyCookie().server,
  34. // 服务端返回
  35. serverPort: 4150,
  36. // 服务端返回
  37. topic: '${MyCookie().getUID()}',
  38. // 主题订阅,服务端返回
  39. channel: '${MyCookie().getUID()}',
  40. // 服务端返回uid
  41. clientId: '客户uid',
  42. // 服务端返回uid
  43. hostname: '主机名', // 服务端返回
  44. );
  45. EventBus().emit('检查粘贴板');
  46. EventBus().on('ChangePage', (arg) {
  47. if (RootPageView().bNIndex == 3) {
  48. queryPersonalInformation();
  49. }
  50. pageController.jumpToPage(RootPageView().bNIndex);
  51. setState(() {});
  52. });
  53. MyData().init(context);
  54. queryPersonalInformation();
  55. checkForUpdates(context);
  56. }
  57. @override
  58. Widget build(BuildContext context) {
  59. return WillPopScope(
  60. onWillPop: () async {
  61. if (lastPopTime == null ||
  62. DateTime.now().difference(lastPopTime) > Duration(seconds: 2)) {
  63. lastPopTime = DateTime.now();
  64. EasyLoading.showToast('再按一次退出');
  65. } else {
  66. lastPopTime = DateTime.now();
  67. await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
  68. }
  69. return false;
  70. },
  71. child: Scaffold(
  72. resizeToAvoidBottomInset: false,
  73. backgroundColor: Colors.transparent,
  74. body: Column(
  75. children: [
  76. Expanded(
  77. child: PageView(
  78. controller: pageController,
  79. children: [HomePage(), GangPage(), MsgPage(), MinePage()],
  80. physics: NeverScrollableScrollPhysics(),
  81. ),
  82. ),
  83. RootPageView().bottomNavigationBar(),
  84. ],
  85. ),
  86. ),
  87. );
  88. }
  89. void queryPersonalInformation() {
  90. MyDio().query({
  91. "key": "user",
  92. "filters": {
  93. "conditions": ["uid == ${MyCookie().getUID()}"]
  94. },
  95. "dims": userDims,
  96. "paging": [1, 20]
  97. }, (response, hasError) {
  98. if (!hasError) {
  99. UserBeanEntity entity =
  100. UserBeanEntity().fromJson(json.decode(response.data.toString()));
  101. MyCookie().userBean = entity.data.data[0];
  102. EventBus().emit('userChange');
  103. }
  104. }, (error) {});
  105. }
  106. }