118 lines
3.7 KiB
Dart
118 lines
3.7 KiB
Dart
import 'package:easyweb/easyweb.dart';
|
||
import 'package:ef/ef.dart';
|
||
import 'package:flutter/material.dart';
|
||
import 'package:easyweb/base/minisdk.dart';
|
||
import 'package:easydevice/easydevice.dart';
|
||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
|
||
|
||
class WebviewTestModel {
|
||
WebviewTestModel();
|
||
|
||
//EasyFlutter Start[Model]
|
||
|
||
//EasyFlutter End
|
||
}
|
||
|
||
class WebviewTestController extends GetControllerEx<WebviewTestModel> {
|
||
WebviewTestController() : super(WebviewTestModel()) {
|
||
web = WebviewHelper(
|
||
jsbridge: buildsdk(
|
||
father: this,
|
||
// clientId: '494641114',
|
||
//dbgserverUrl: 'ws://192.168.1.2:9001',
|
||
),
|
||
settings: buildsettings(),
|
||
params: PlatformHeadlessInAppWebViewCreationParams(
|
||
initialUrlRequest: URLRequest(
|
||
url: WebUri(
|
||
'https://wyf.it.real.he-info.cn:94/goods-front/index.html'),
|
||
),
|
||
onLoadStop: (controller, url) => {setState(() => ready.value = true)},
|
||
),
|
||
);
|
||
try {
|
||
web.jsbridge!.bind((bridge) {
|
||
var minible = Minibleapp(bridge: bridge);
|
||
// minible.bridge.sdk.ble.scanenable(5);
|
||
});
|
||
web
|
||
//.file(
|
||
// url: 'https://wsl.it.real.he-info.cn:94/webdemo/web.zip',
|
||
// pretag: 'https://wsl.it.real.he-info.cn:94/webdemo/',
|
||
//)
|
||
.network()
|
||
.then((value) {
|
||
if (value) {
|
||
//资源准备完成..
|
||
setState(() {
|
||
ready.value = true;
|
||
});
|
||
}
|
||
});
|
||
} catch (e, s) {
|
||
ef.log('$e,$s');
|
||
}
|
||
}
|
||
late WebviewHelper web;
|
||
var ready = false.obs;
|
||
var cnt = 0.obs;
|
||
//EasyFlutter End
|
||
}
|
||
|
||
class WebviewTestView extends GetComponent<WebviewTestController> {
|
||
WebviewTestView({super.key, super.oncreate});
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
UserInfoController userInfoController = Get.find();
|
||
MHTHomeController deviceController = Get.find();
|
||
deviceController.getDeviceList(group: 'room');
|
||
return Scaffold(
|
||
backgroundColor: Colors.black12,
|
||
body: Column(
|
||
crossAxisAlignment: CrossAxisAlignment.center,
|
||
mainAxisSize: MainAxisSize.max,
|
||
mainAxisAlignment: (userInfoController.model.login! != null &&
|
||
userInfoController.model.login! == 1)
|
||
? MainAxisAlignment.start
|
||
: 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),
|
||
),
|
||
);
|
||
}
|
||
WebviewTestController webviewTestController = Get.find();
|
||
var dataList = deviceController.deviceList.value;
|
||
webviewTestController.web.jsbridge!.dart.updateDeviceList(dataList);
|
||
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(),
|
||
),
|
||
);
|
||
}),
|
||
],
|
||
),
|
||
);
|
||
}
|
||
}
|