更新未登录时候头像报错

This commit is contained in:
wyf
2025-08-02 09:10:14 +08:00
parent 42ff53868b
commit 9dc0f55ab6
5 changed files with 39 additions and 104 deletions

View File

@@ -1,3 +1,3 @@
[
"assets/miniapp/mhtControl_1.0.40.zip"
"assets/miniapp/mhtControl_1.0.44.zip"
]

View File

@@ -117,6 +117,7 @@ class _MinePageState extends State<NewMinePage> {
child: Row(
children: [
Obx(() {
userInfoController.model.login!;
return Container(
width: 120.rpx,
height: 120.rpx,

View File

@@ -32,6 +32,8 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
List personList = [];
List instantData = [];
RxBool initFlag = false.obs;
Timer? _resourceLoadTimer;
Widget webviewWidget = Container();
WebviewTestController() : super(WebviewTestModel()) {
web = WebviewHelper(
@@ -44,10 +46,14 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
settings: buildsettings(),
params: PlatformHeadlessInAppWebViewCreationParams(
onLoadStop: (controller, url) {
setState(() => ready.value = true);
// MHTHomeController deviceController = Get.find();
// web.jsbridge!.dart
// .updateDeviceList(deviceController.deviceList.values);
setState(() {
ready.value = true;
});
},
onLoadResource: (controller, resource) {
sourceTime = web.requestTimestamp;
ef.log("[请求资源时间]${web.requestTimestamp}");
_startMonitoringIfNeeded();
},
),
);
@@ -236,6 +242,8 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
late WebviewHelper web;
var ready = false.obs;
var cnt = 0.obs;
var loadRecource = false.obs;
int sourceTime = 0;
Future<void> queryPersonInfoByMac() async {
UserInfoController userInfoController = Get.find();
@@ -352,7 +360,6 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
void onInit() {
ef.log("webview test init =>${DateTime.now()}");
super.onInit();
try {
web.runApp('mhtControl').then((x) {
ready.value = true;
@@ -366,6 +373,25 @@ class WebviewTestController extends GetControllerEx<WebviewTestModel> {
ef.log('$e,$s');
}
}
void _startMonitoringIfNeeded() {
// 如果定时器已启动,则无需重新启动
if (_resourceLoadTimer != null) return;
_resourceLoadTimer = Timer.periodic(Duration(seconds: 1), (timer) {
int now = DateTime.now().millisecondsSinceEpoch;
if (sourceTime == 0) return; // 还未加载任何资源
if (now - sourceTime > 3000) {
ef.log("[资源加载完成] 当前时间: $now, 上次请求时间: $sourceTime");
_resourceLoadTimer?.cancel();
_resourceLoadTimer = null;
loadRecource.value = true;
updateAll();
}
});
}
}
class WebviewTestView extends GetComponent<WebviewTestController> {
@@ -385,102 +411,9 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
return ef.kvRoot.WebviewTestController;
}
// @override
// Widget build(BuildContext context) {
// UserInfoController userInfoController = Get.find();
// MHTHomeController deviceController = Get.find();
// deviceController.getDeviceList().then((x) {
// if (controller.web.jsbridge!.inited) {
// //发送测试消息给webview
// // controller.web.jsbridge!.dart
// // .updateDeviceList(deviceController.deviceList.values);
// }
// });
// return Scaffold(
// backgroundColor: Colors.transparent,
// body: Column(
// crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisSize: MainAxisSize.max,
// mainAxisAlignment: (userInfoController.model.login! != null &&
// userInfoController.model.login! == 1)
// ? MainAxisAlignment.start
// : MainAxisAlignment.center,
// children: [
// Obx(() {
// return Visibility(
// visible: userInfoController.model.login! == null ||
// userInfoController.model.login! == 0,
// child: Center(
// child: InkWell(
// onTap: () => Get.toNamed("/loginPage"),
// child: RichText(
// text: TextSpan(
// children: [
// TextSpan(
// text: "请先".tr,
// style: TextStyle(
// color: Colors.white,
// fontSize: 30.rpx,
// ),
// ),
// WidgetSpan(
// child: Stack(
// children: [
// Text(
// "登录".tr,
// style: TextStyle(
// color: stringToColor("#84F5FF"),
// fontSize: 30.rpx,
// ),
// ),
// Positioned(
// bottom: 0, // 控制下划线与文字的间距
// left: 0,
// right: 0,
// child: Container(
// height: 1, // 下划线粗细
// color: stringToColor("#84F5FF"),
// ),
// ),
// ],
// ),
// ),
// TextSpan(
// text: "后,再进行设备控制".tr,
// style: TextStyle(
// color: Colors.white,
// fontSize: 30.rpx,
// ),
// ),
// ],
// ),
// ),
// ),
// ),
// );
// }),
// Obx(() {
// return Visibility(
// visible: userInfoController.model.login! != null &&
// userInfoController.model.login! == 1,
// child: Expanded(
// child: Align(
// alignment: Alignment.topLeft,
// child: Obx(() {
// return controller.ready.value
// ? controller.web.build()
// : Container();
// }),
// ),
// ));
// }),
// ],
// ),
// );
// }
@override
Widget build(BuildContext context) {
// controller.webviewWidget = controller.web.build();
return Obx(() {
UserInfoController userInfoController = Get.find();
MHTHomeController deviceController = Get.find();
@@ -604,9 +537,9 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
child: Align(
alignment: Alignment.topLeft,
child: Obx(() {
return controller.ready.value
return (controller.ready.value)
?controller.web.build()
: Container();
: Center(child: CircularProgressIndicator());
}),
),
),

View File

@@ -97,6 +97,7 @@ dependency_overrides:
geolocator: 13.0.3
geolocator_android: 4.4.1
geocoding: 4.0.0
fluwx: 5.5.2
flutter:
uses-material-design: true