更新样式

This commit is contained in:
wyf
2025-07-09 15:28:46 +08:00
parent c37ae7f293
commit ceb228b256
4 changed files with 98 additions and 41 deletions

View File

@@ -55,10 +55,11 @@ class _DeviceComponentWidgetState extends State<DeviceComponentWidget> {
backgroundColor: Colors.white,
highlightColor: Colors.white,
borderRadius: 20.rpx,
padding: EdgeInsetsDirectional.fromSTEB(30.rpx, 36.rpx, 55.rpx, 52.rpx),
padding: EdgeInsetsDirectional.fromSTEB(30.rpx, 36.rpx, 55.rpx, 36.rpx),
onTap: () async {},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: [
Row(
@@ -246,14 +247,14 @@ class _DeviceComponentWidgetState extends State<DeviceComponentWidget> {
.getDeviceList(group: 'room')
.then((apiResponse) {
if (apiResponse.code != HttpStatusCodes.ok) {
try {
WebviewTestController webviewTestController =
Get.find();
webviewTestController.web.jsbridge?.dart
.alterDevice();
} catch (e) {
ef.log("[h5]通知列表更新报错:$e");
}
try {
WebviewTestController webviewTestController =
Get.find();
webviewTestController.web.jsbridge?.dart
.alterDevice();
} catch (e) {
ef.log("[h5]通知列表更新报错:$e");
}
TopSlideNotification.show(
Get.context!,
text: apiResponse.msg!,
@@ -638,7 +639,7 @@ class _DeviceComponentWidgetState extends State<DeviceComponentWidget> {
await read!.characteristic.setNotifyValue(true);
final write =
bledevice.getresource('ffe0/ffe1'); // 与 read 同 characteristic
bledevice.getresource('ffe0/ffe1'); // 与 read 同 characteristic
const int maxRetries = 2;
for (int attempt = 0; attempt < maxRetries; attempt++) {
final completer = Completer<String>();

View File

@@ -209,10 +209,10 @@ class DeviceInfoWidget extends GetView {
WebviewTestController webviewTestController =
Get.find();
await webviewTestController.web.jsbridge?.dart
webviewTestController.web.jsbridge?.dart
.pageActive(false);
await Future.delayed(Duration(seconds: 1));
await webviewTestController.web.jsbridge?.dart
webviewTestController.web.jsbridge?.dart
.appToHtmlDevice(device);
MainPageBBottomChange.jumpTo(2);
Get.until((route) =>

View File

@@ -79,11 +79,10 @@ class _HomeDeviceStausWidgetState extends State<HomeDeviceStausWidget> {
try {
var device = widget.deviceStatus;
WebviewTestController webviewTestController = Get.find();
await webviewTestController.web.jsbridge?.dart
webviewTestController.web.jsbridge?.dart
.pageActive(false);
await Future.delayed(Duration(seconds: 1));
await webviewTestController.web.jsbridge?.dart
webviewTestController.web.jsbridge?.dart
.appToHtmlDevice(device);
MainPageBBottomChange.jumpTo(2);
} catch (e) {

View File

@@ -7,9 +7,11 @@ 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';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/common/util/requestWithLog.dart';
import 'package:vbvs_app/controller/user_info_controller.dart';
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
@@ -31,6 +33,7 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
WebviewTestController() : super(WebviewTestModel()) {
web = WebviewHelper(
isheadless: true,
jsbridge: buildsdk(
// father: this,
// clientId: '494641114',
@@ -89,7 +92,7 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
});
//sdk定义接口
bridge.sdk.querySelectDevice((args) async {
ef.log('updateBlueToothStatus: $args');
ef.log('querySelectDevice: $args');
// bluetooth = args[0];
MHTHomeController deviceController = Get.find();
await deviceController.getDeviceList(group: 'room');
@@ -134,10 +137,24 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
var data = await homeController.restoreTimer(args);
return data;
});
bridge.sdk.toBindDevice((args) async {
ef.log('queryInstantData: $args');
Get.toNamed("/mHTDeviceTypePage");
return true;
});
});
} catch (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;
var ready = false.obs;
@@ -288,6 +305,14 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
class WebviewTestView extends GetComponent<WebviewTestController> {
WebviewTestView({super.key, super.oncreate});
@override
WebviewTestController newinstance() {
if (ef.kvRoot.WebviewTestController == null) {
ef.kvRoot.WebviewTestController = WebviewTestController();
}
return ef.kvRoot.WebviewTestController;
}
@override
Widget build(BuildContext context) {
UserInfoController userInfoController = Get.find();
@@ -301,7 +326,7 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
});
return Scaffold(
backgroundColor: Colors.black12,
backgroundColor: Colors.transparent,
body: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
@@ -311,34 +336,66 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
: MainAxisAlignment.center,
children: [
Obx(() {
if (userInfoController.model.login! == null ||
userInfoController.model.login! == 0) {
return Center(
// 包一层 Center强制水平和垂直都居中
child: Text(
"登录进行设备控制".tr,
style: TextStyle(color: Colors.white, fontSize: 30.rpx),
return Visibility(
visible: userInfoController.model.login! == null ||
userInfoController.model.login! == 0,
child: Center(
child: InkWell(
onTap: () => Get.toNamed("/loginPage"),
child: RichText(
text: TextSpan(
children: [
WidgetSpan(
child: Stack(
children: [
Text(
"登录",
style: TextStyle(
color: stringToColor("#84F5FF"),
fontSize: 30.rpx,
),
),
Positioned(
bottom: 0, // 控制下划线与文字的间距
left: 0,
right: 0,
child: Container(
height: 1, // 下划线粗细
color: stringToColor("#84F5FF"),
),
),
],
),
),
TextSpan(
text: "进行设备控制",
style: TextStyle(
color: Colors.white,
fontSize: 30.rpx,
),
),
],
),
),
),
);
}
return Expanded(
child: Align(
alignment: Alignment.topLeft,
child: controller.ready.value
? ((controller.cnt.value % 2 == 0)
? controller.web.build(
key: ValueKey("A"),
headless: false,
)
: controller.web.build(
key: ValueKey("B"),
headless: false,
))
: Container(),
),
);
}),
Obx(() {
return Visibility(
visible: userInfoController.model.login! != null &&
userInfoController.model.login! == 1,
child: Expanded(
child: Align(
alignment: Alignment.topLeft,
child: Obx(
() => controller.ready.value
? controller.web.build()
: Container(),
),
),
));
}),
],
),
);