111 lines
3.1 KiB
Dart
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(),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|