| 
									
										
										
										
											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;
 | 
					
						
							|  |  |  | //   }
 | 
					
						
							|  |  |  | // }
 |