更新未登录时候头像报错
This commit is contained in:
@@ -117,6 +117,7 @@ class _MinePageState extends State<NewMinePage> {
|
||||
child: Row(
|
||||
children: [
|
||||
Obx(() {
|
||||
userInfoController.model.login!;
|
||||
return Container(
|
||||
width: 120.rpx,
|
||||
height: 120.rpx,
|
||||
|
||||
@@ -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();
|
||||
@@ -578,7 +511,7 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: Container(
|
||||
height: 1,
|
||||
height: 1,
|
||||
color: stringToColor("#84F5FF"),
|
||||
),
|
||||
),
|
||||
@@ -604,9 +537,9 @@ class WebviewTestView extends GetComponent<WebviewTestController> {
|
||||
child: Align(
|
||||
alignment: Alignment.topLeft,
|
||||
child: Obx(() {
|
||||
return controller.ready.value
|
||||
? controller.web.build()
|
||||
: Container();
|
||||
return (controller.ready.value)
|
||||
?controller.web.build()
|
||||
: Center(child: CircularProgressIndicator());
|
||||
}),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user