更新小e界面

This commit is contained in:
wyf
2025-07-10 11:16:21 +08:00
parent ceb228b256
commit 76b93613dc
5 changed files with 135 additions and 32 deletions

Binary file not shown.

View File

@@ -212,7 +212,13 @@ class _NewHomePageState extends State<NewHomePage> {
width: 60.rpx, width: 60.rpx,
height: 60.rpx, height: 60.rpx,
onTap: () { 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), SizedBox(width: 40.rpx),

View File

@@ -7,7 +7,6 @@ import 'package:easyweb/base/easyws.dart';
import 'package:easyweb/base/minisdk.dart'; import 'package:easyweb/base/minisdk.dart';
import 'package:easyweb/easyweb.dart'; import 'package:easyweb/easyweb.dart';
import 'package:ef/ef.dart'; import 'package:ef/ef.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:vbvs_app/common/color/ServiceConstant.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart';
import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/common/util/FitTool.dart';
@@ -35,8 +34,8 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
web = WebviewHelper( web = WebviewHelper(
isheadless: true, isheadless: true,
jsbridge: buildsdk( jsbridge: buildsdk(
// father: this, father: this,
// clientId: '494641114', clientId: '494641114',
// dbgserverUrl: 'ws://192.168.1.2:9001', // dbgserverUrl: 'ws://192.168.1.2:9001',
), ),
settings: buildsettings(), settings: buildsettings(),
@@ -147,14 +146,6 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
ef.log('$e,$s'); 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; late WebviewHelper web;
var ready = false.obs; var ready = false.obs;
@@ -193,7 +184,7 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
try { try {
var tmp; var tmp;
if (data is String) { if (data is String) {
tmp = jsonDecode(data); // 只有是 String 才 decode tmp = jsonDecode(data);
} else if (data is Map<String, dynamic>) { } else if (data is Map<String, dynamic>) {
tmp = data; // 直接用 tmp = data; // 直接用
} else { } else {
@@ -275,26 +266,10 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
void onInit() { void onInit() {
ef.log("webview test init =>${DateTime.now()}"); ef.log("webview test init =>${DateTime.now()}");
super.onInit(); super.onInit();
try { try {
ef.kvRoot.appmanger.find("mhtControl").then((x) { web.runApp('mhtControl').then((x) {
x!.load().then((y) { ready.value = true;
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;
});
}
});
});
}); });
} catch (e, s) { } catch (e, s) {
ef.log('$e,$s'); ef.log('$e,$s');

View File

@@ -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<XiaoEPage> createState() => _XiaoEPageState();
}
class _XiaoEPageState extends State<XiaoEPage> {
GlobalController globalController = Get.find();
UserInfoController userInfoController = Get.find();
BlueteethBindController blueteethBindController = Get.find();
ThemeController themeController = Get.find();
DeviceTypeController deviceTypeController = Get.find();
ValueNotifier<bool> isPageLoading = ValueNotifier<bool>(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<bool>(
valueListenable: isPageLoading,
builder: (context, isLoading, child) {
return isLoading
? Center(
child: CircularProgressIndicator(), // 加载指示器
)
: SizedBox.shrink();
},
),
],
),
),
),
),
),
);
}
}

View File

@@ -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/page/update_password_page.dart';
import 'package:vbvs_app/pages/mh_page/user_agreement_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/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/bluetooth.dart';
import '../pages/mh_page/edit_address_page.dart'; import '../pages/mh_page/edit_address_page.dart';
import '../pages/mh_page/message/messageDetail.dart'; import '../pages/mh_page/message/messageDetail.dart';
@@ -113,6 +114,7 @@ var mhroutes = {
MessageDetailPage(data: arguments), MessageDetailPage(data: arguments),
"/mhtSleepReportReturnPage": (context, {arguments}) => "/mhtSleepReportReturnPage": (context, {arguments}) =>
MhtSleepReportReturnPage(data: arguments), MhtSleepReportReturnPage(data: arguments),
"/xiaoEPage": (contxt, {arguments}) => XiaoEPage(sleepUri: arguments),
}; };
var mhonGenerateRoute = (RouteSettings settings) { var mhonGenerateRoute = (RouteSettings settings) {
final String? name = settings.name; // 获取路由名称,如 /news 或 /search final String? name = settings.name; // 获取路由名称,如 /news 或 /search