2024-04-01 21:41:42 +08:00
|
|
|
//
|
|
|
|
|
// import 'package:flutter/material.dart';
|
|
|
|
|
// import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
|
|
|
|
// import 'package:web_synchronization_tool/web_widget.dart';
|
|
|
|
|
//
|
|
|
|
|
// import 'JavaScriptString.dart';
|
|
|
|
|
//
|
|
|
|
|
// class MainPage extends StatefulWidget {
|
|
|
|
|
// const MainPage({super.key});
|
|
|
|
|
//
|
|
|
|
|
// @override
|
|
|
|
|
// State<MainPage> createState() => _MainPageState();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// class _MainPageState extends State<MainPage> {
|
|
|
|
|
//
|
|
|
|
|
// late InAppWebViewController mainController;
|
|
|
|
|
// late InAppWebViewController controller;
|
|
|
|
|
//
|
|
|
|
|
// bool asyncState = false;
|
|
|
|
|
//
|
|
|
|
|
// @override
|
|
|
|
|
// void initState() {
|
|
|
|
|
// super.initState();
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @override
|
|
|
|
|
// void dispose() {
|
|
|
|
|
// super.dispose();
|
|
|
|
|
//
|
|
|
|
|
// WebStorageManager.instance().deleteAllData();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// /// 注入触摸监听
|
|
|
|
|
// addTouchendEventJS(){
|
|
|
|
|
//
|
|
|
|
|
// final clickJsUS = UserScript(groupName: 'touchend',source: JavaScriptString.touchendEventJSString, injectionTime: UserScriptInjectionTime.AT_DOCUMENT_START);
|
|
|
|
|
// mainController.addUserScript(userScript: clickJsUS);
|
|
|
|
|
//
|
|
|
|
|
// mainController.addJavaScriptHandler(handlerName: 'touchend', callback: (args){
|
|
|
|
|
// if (asyncState){
|
|
|
|
|
// int x = double.parse(args.first.toString()).toInt();
|
|
|
|
|
// int y = double.parse(args.last.toString()).toInt();
|
|
|
|
|
// controller.evaluateJavascript(source: JavaScriptString.clickJSString(x, y) );
|
|
|
|
|
// // controller.evaluateJavascript(source: JavaScriptString.touchendJsString(x, y) );
|
|
|
|
|
// // controller.evaluateJavascript(source: JavaScriptString.getClassTouchendJsString(x, y) );
|
|
|
|
|
// }
|
|
|
|
|
// });
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @override
|
|
|
|
|
// Widget build(BuildContext context) {
|
|
|
|
|
// return Scaffold(
|
|
|
|
|
// body: Column(
|
|
|
|
|
// crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
|
|
|
// children: [
|
|
|
|
|
// Container(
|
|
|
|
|
// height: 50,
|
|
|
|
|
// color: Colors.white,
|
|
|
|
|
// padding: const EdgeInsets.symmetric(horizontal: 50),
|
|
|
|
|
// child: Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// TextButton(
|
|
|
|
|
// onPressed: () {
|
|
|
|
|
// controller.evaluateJavascript(source: JavaScriptString.clickJSString(50, 100) );
|
|
|
|
|
// },
|
|
|
|
|
// child: const Text('模拟点击测试')),
|
|
|
|
|
// TextButton(
|
|
|
|
|
// onPressed: () {
|
|
|
|
|
// mainController.evaluateJavascript(source: JavaScriptString.inputJsString(45) );
|
|
|
|
|
// controller.evaluateJavascript(source: JavaScriptString.inputJsString(45) );
|
|
|
|
|
// },
|
|
|
|
|
// child: const Text('模拟输入测试')),
|
|
|
|
|
// Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// const Text('同步'),
|
|
|
|
|
// Switch(value: asyncState, onChanged: (value){
|
|
|
|
|
// setState(() {
|
|
|
|
|
// asyncState = value;
|
|
|
|
|
// });
|
|
|
|
|
// })
|
|
|
|
|
// ],
|
|
|
|
|
// )
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// ),
|
|
|
|
|
// Expanded(child: pageViewWidget()),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// );
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Widget pageViewWidget() {
|
|
|
|
|
// return Row(
|
|
|
|
|
// children: <Widget>[
|
|
|
|
|
// Expanded(
|
|
|
|
|
// child: Container(
|
|
|
|
|
// color: Colors.yellow,
|
|
|
|
|
// child: KeepAlivePage(
|
|
|
|
|
// child: WebWidget(controlerCallBack: (_mainController) {
|
|
|
|
|
// mainController = _mainController;
|
|
|
|
|
//
|
|
|
|
|
// addTouchendEventJS();
|
|
|
|
|
//
|
|
|
|
|
// }),
|
|
|
|
|
// ),
|
|
|
|
|
// ),
|
|
|
|
|
// ),
|
|
|
|
|
// Expanded(
|
|
|
|
|
// child: Container(
|
|
|
|
|
// color: Colors.blue,
|
|
|
|
|
// child: KeepAlivePage(
|
|
|
|
|
// child: WebWidget(controlerCallBack: (_controller) {
|
|
|
|
|
// controller = _controller;
|
|
|
|
|
// }),
|
|
|
|
|
// ),
|
|
|
|
|
// ),
|
|
|
|
|
// )
|
|
|
|
|
// ],
|
|
|
|
|
// );
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// class KeepAlivePage extends StatefulWidget {
|
|
|
|
|
// final Widget child;
|
|
|
|
|
//
|
|
|
|
|
// KeepAlivePage({super.key , required this.child});
|
|
|
|
|
//
|
|
|
|
|
// @override
|
|
|
|
|
// _KeepAlivePageState createState() => _KeepAlivePageState();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// class _KeepAlivePageState extends State<KeepAlivePage> with AutomaticKeepAliveClientMixin {
|
|
|
|
|
// @override
|
|
|
|
|
// bool get wantKeepAlive => true;
|
|
|
|
|
//
|
|
|
|
|
// @override
|
|
|
|
|
// Widget build(BuildContext context) {
|
|
|
|
|
// super.build(context);
|
|
|
|
|
// return widget.child;
|
|
|
|
|
// }
|
|
|
|
|
// }
|