diff --git a/assets/miniapp/mhtControl_1.0.0.zip b/assets/miniapp/mhtControl_1.0.0.zip index ede2792..9ee5334 100644 Binary files a/assets/miniapp/mhtControl_1.0.0.zip and b/assets/miniapp/mhtControl_1.0.0.zip differ diff --git a/lib/pages/mh_page/homepage/new_Home_page.dart b/lib/pages/mh_page/homepage/new_Home_page.dart index e89c67b..c04c77f 100644 --- a/lib/pages/mh_page/homepage/new_Home_page.dart +++ b/lib/pages/mh_page/homepage/new_Home_page.dart @@ -212,7 +212,13 @@ class _NewHomePageState extends State { width: 60.rpx, height: 60.rpx, onTap: () { - print("点击了小鹅图标"); + // print("点击了小鹅图标"); + if (userInfoController.model.login == 0) { + Get.toNamed("/loginPage"); + } + Get.toNamed("/xiaoEPage", + arguments: + "https://xiaoe.he-info.cn/?mac=b43a45c3ddf4"); }, ), SizedBox(width: 40.rpx), diff --git a/lib/pages/mh_page/test/WebviewTestModel.dart b/lib/pages/mh_page/test/WebviewTestModel.dart index ace3f9a..6341616 100644 --- a/lib/pages/mh_page/test/WebviewTestModel.dart +++ b/lib/pages/mh_page/test/WebviewTestModel.dart @@ -7,7 +7,6 @@ import 'package:easyweb/base/easyws.dart'; import 'package:easyweb/base/minisdk.dart'; import 'package:easyweb/easyweb.dart'; import 'package:ef/ef.dart'; -import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart'; import 'package:vbvs_app/common/util/FitTool.dart'; @@ -35,8 +34,8 @@ class WebviewTestController extends GetControllerEx { web = WebviewHelper( isheadless: true, jsbridge: buildsdk( - // father: this, - // clientId: '494641114', + father: this, + clientId: '494641114', // dbgserverUrl: 'ws://192.168.1.2:9001', ), settings: buildsettings(), @@ -147,14 +146,6 @@ class WebviewTestController extends GetControllerEx { ef.log('$e,$s'); } - // try { - // web.runApp('mhtControl').then((x) { - // ready.value = true; - // web.build(); - // }); - // } catch (e, s) { - // ef.log('$e,$s'); - // } } late WebviewHelper web; var ready = false.obs; @@ -193,7 +184,7 @@ class WebviewTestController extends GetControllerEx { try { var tmp; if (data is String) { - tmp = jsonDecode(data); // 只有是 String 才 decode + tmp = jsonDecode(data); } else if (data is Map) { tmp = data; // 直接用 } else { @@ -275,26 +266,10 @@ class WebviewTestController extends GetControllerEx { void onInit() { ef.log("webview test init =>${DateTime.now()}"); super.onInit(); + try { - ef.kvRoot.appmanger.find("mhtControl").then((x) { - x!.load().then((y) { - ef.log("webview test res init loaded =>${DateTime.now()}"); - web - .file( - url: 'https://wyf.it.real.he-info.cn:94/goods-front/index.html', - pretag: 'https://wyf.it.real.he-info.cn:94/goods-front/', - raw: y, - ) - //.network() - .then((value) { - if (value) { - //资源准备完成.. - setState(() { - ready.value = true; - }); - } - }); - }); + web.runApp('mhtControl').then((x) { + ready.value = true; }); } catch (e, s) { ef.log('$e,$s'); diff --git a/lib/pages/xiaoe/xiaoe_page.dart b/lib/pages/xiaoe/xiaoe_page.dart new file mode 100644 index 0000000..bc94604 --- /dev/null +++ b/lib/pages/xiaoe/xiaoe_page.dart @@ -0,0 +1,120 @@ +import 'package:ef/ef.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_inappwebview/flutter_inappwebview.dart'; +import 'package:vbvs_app/common/util/FitTool.dart'; +import 'package:vbvs_app/common/util/MyUtils.dart'; +import 'package:vbvs_app/controller/device/blueteeth_bind_controller.dart'; +import 'package:vbvs_app/controller/device/device_type_controller.dart'; +import 'package:vbvs_app/controller/main_bottom/global_controller.dart'; +import 'package:vbvs_app/controller/theme_controller/ThemeController.dart'; +import 'package:vbvs_app/controller/user_info_controller.dart'; + +class XiaoEPage extends StatefulWidget { + var sleepUri; + XiaoEPage({super.key, required this.sleepUri}); + + @override + State createState() => _XiaoEPageState(); +} + +class _XiaoEPageState extends State { + GlobalController globalController = Get.find(); + UserInfoController userInfoController = Get.find(); + BlueteethBindController blueteethBindController = Get.find(); + ThemeController themeController = Get.find(); + DeviceTypeController deviceTypeController = Get.find(); + + ValueNotifier isPageLoading = ValueNotifier(true); + + @override + void initState() { + super.initState(); + } + + @override + void dispose() { + // 清理 ValueNotifier + isPageLoading.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (context, bodySize) => GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/img/bgNoImg.png'), // 本地图片 + fit: BoxFit.fill, // 填满整个 Container + ), + ), + child: Scaffold( + backgroundColor: Colors.transparent, // 背景透明 + appBar: AppBar( + backgroundColor: themeController.currentColor.sc17, + automaticallyImplyLeading: false, + iconTheme: IconThemeData(color: themeController.currentColor.sc3), + titleSpacing: 0, + title: Container( + width: double.infinity, + height: 180.rpx, + child: Stack( + alignment: Alignment.center, + children: [ + /// 居中标题 + Text( + '健康报告'.tr, + style: TextStyle( + fontFamily: 'Readex Pro', + color: themeController.currentColor.sc3, + letterSpacing: 0, + fontSize: 30.rpx, + ), + ), + + /// 左边返回按钮 + Positioned( + left: 0, + child: returnIconButtomNew, + ), + ], + ), + ), + ), + body: SafeArea( + top: true, + child: Stack( + children: [ + InAppWebView( + key: UniqueKey(), + initialUrlRequest: URLRequest(url: WebUri(widget.sleepUri)), + onLoadStart: (controller, url) { + // 页面开始加载时显示加载指示器 + isPageLoading.value = true; + }, + onLoadStop: (controller, url) { + // 页面加载完成后隐藏加载指示器 + isPageLoading.value = false; + }, + ), + ValueListenableBuilder( + valueListenable: isPageLoading, + builder: (context, isLoading, child) { + return isLoading + ? Center( + child: CircularProgressIndicator(), // 加载指示器 + ) + : SizedBox.shrink(); + }, + ), + ], + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/routers/mh_routers.dart b/lib/routers/mh_routers.dart index 8fa8343..6128bdf 100644 --- a/lib/routers/mh_routers.dart +++ b/lib/routers/mh_routers.dart @@ -47,6 +47,7 @@ import 'package:vbvs_app/pages/mh_page/user/page/rxhx_mht.dart'; import 'package:vbvs_app/pages/mh_page/user/page/update_password_page.dart'; import 'package:vbvs_app/pages/mh_page/user_agreement_page.dart'; import 'package:vbvs_app/pages/sleep_report/new_sleep_report_page.dart'; +import 'package:vbvs_app/pages/xiaoe/xiaoe_page.dart'; import '../pages/mh_page/bluetooth.dart'; import '../pages/mh_page/edit_address_page.dart'; import '../pages/mh_page/message/messageDetail.dart'; @@ -113,6 +114,7 @@ var mhroutes = { MessageDetailPage(data: arguments), "/mhtSleepReportReturnPage": (context, {arguments}) => MhtSleepReportReturnPage(data: arguments), + "/xiaoEPage": (contxt, {arguments}) => XiaoEPage(sleepUri: arguments), }; var mhonGenerateRoute = (RouteSettings settings) { final String? name = settings.name; // 获取路由名称,如 /news 或 /search