Files
tuiche/lib/pages/mh_page/test/WebviewTestModel.dart
2025-06-21 08:49:40 +08:00

111 lines
3.1 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';
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://wsl.it.real.he-info.cn:94/webdemo/index.html'),
),
onLoadStop: (controller, url) => {setState(() => ready.value = true)},
),
);
try {
web.jsbridge!.bind((bridge) {
Minibleapp(bridge: bridge);
});
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) {
return Scaffold(
backgroundColor: Colors.black12,
body: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Align(
alignment: Alignment.topLeft,
child: Padding(
padding: EdgeInsets.all(8),
child: SizedBox(
height: 30,
child: TextButton(
onPressed: () {
setState(() => controller.cnt.value++);
// Get.to(
// () => TestInkWellView(
// oncreate: (x) => TestInkWellController(),
// ),
// );
},
child: Text('转跳'),
),
),
),
),
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(),
),
),
],
),
);
}
}