118 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Dart
		
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Dart
		
	
	
	
| class JavaScriptString {
 | ||
|   /// 点击监听
 | ||
|   static String clickEventJSString =
 | ||
|       '''document.addEventListener('click', function(event) {
 | ||
|   var x = event.clientX;
 | ||
|   var y = event.clientY;
 | ||
| 
 | ||
|   console.log('点击坐标:x=' + x + ', y=' + y);
 | ||
|   window.flutter_inappwebview.callHandler('click', x, y);
 | ||
|   
 | ||
| });''';
 | ||
| 
 | ||
|   /// 触摸监听
 | ||
|   static String touchendEventJSString =
 | ||
|       '''document.addEventListener('touchend', function(event) {
 | ||
|   var x = event.changedTouches[0].clientX;
 | ||
|   var y = event.changedTouches[0].clientY;
 | ||
|   
 | ||
|   // 获取目标元素
 | ||
|     var target = event.target;
 | ||
|     
 | ||
|     // 获取目标元素的class和id
 | ||
|     var targetClass = target.className;
 | ||
|     var targetId = target.id;
 | ||
|     
 | ||
|     console.log('Class: ' + targetClass);
 | ||
|     console.log('Id: ' + targetId);
 | ||
| 
 | ||
|   console.log('触摸坐标:x=' + x + ', y=' + y);
 | ||
|   window.flutter_inappwebview.callHandler('touchend', x, y);
 | ||
|   
 | ||
| });''';
 | ||
| 
 | ||
|   /// 退出登录
 | ||
|   static String loginOutJsString = '''
 | ||
|         \$.ajax({
 | ||
|             type: "GET",
 | ||
|             url: "/api/logout.do",
 | ||
|             success: function(t) {
 | ||
|                 "index.html" != location.pathname ? window.location.href = "index.html" : location.reload()
 | ||
|             },
 | ||
|             error: function(t) {
 | ||
|                 var e = \$.parseJSON(t.responseText + "");
 | ||
|                 alert(e.msg, 2)
 | ||
|             }
 | ||
|         })
 | ||
|     ''';
 | ||
| 
 | ||
|   /// 模拟点击
 | ||
|   static String clickJSString(int x, int y) {
 | ||
|     return 'document.elementFromPoint($x, $y).click();';
 | ||
|   }
 | ||
| 
 | ||
|   /// 模拟触摸
 | ||
|   static String touchendJsString(int x, int y) {
 | ||
|     return '''
 | ||
|     
 | ||
|     ''';
 | ||
|   }
 | ||
| 
 | ||
|   /// 模拟触摸
 | ||
|   static String getClassTouchendJsString(int x, int y) {
 | ||
|     return '''
 | ||
|     try{
 | ||
|     // 获取鼠标点击位置的坐标
 | ||
| var x = $x;
 | ||
| var y = $y;
 | ||
| 
 | ||
| // 创建一个touchstart事件
 | ||
| var touchstartEvent = new TouchEvent('touchstart', {
 | ||
|   bubbles: true,
 | ||
|   cancelable: true,
 | ||
|   view: window,
 | ||
|   changedTouches: [new Touch({ identifier: Date.now(), target: document.body, clientX: x, clientY: y })],
 | ||
|   targetTouches: [new Touch({ identifier: Date.now(), target: document.body, clientX: x, clientY: y })]
 | ||
| });
 | ||
| 
 | ||
| // touchstartEvent
 | ||
| document.body.dispatchEvent(touchstartEvent);
 | ||
| 
 | ||
| // 创建一个touchend事件
 | ||
| var touchendEvent = new TouchEvent('touchend', {
 | ||
|   bubbles: true,
 | ||
|   cancelable: true,
 | ||
|   view: window,
 | ||
|   changedTouches: [new Touch({ identifier: Date.now(), target: document.body, clientX: x, clientY: y })],
 | ||
|   targetTouches: [new Touch({ identifier: Date.now(), target: document.body, clientX: x, clientY: y })]
 | ||
| });
 | ||
| 
 | ||
| // 触发touchend事件
 | ||
| document.body.dispatchEvent(touchendEvent);
 | ||
| 
 | ||
| } catch (t) {
 | ||
|                 console.log('模拟触摸错误 -- ' + t);
 | ||
|             }
 | ||
| 
 | ||
|     ''';
 | ||
|   }
 | ||
| 
 | ||
|   /// 输入
 | ||
|   static String inputJsString(int value) {
 | ||
|     return '''
 | ||
|   
 | ||
| var inputEvent = new Event('input', {
 | ||
|   bubbles: true,
 | ||
|   cancelable: true,
 | ||
| });
 | ||
| 
 | ||
| var inputElement = document.querySelector(".input");
 | ||
| 
 | ||
| inputElement.value = "$value";
 | ||
| 
 | ||
| inputElement.dispatchEvent(inputEvent);
 | ||
| 
 | ||
|   ''';
 | ||
|   }
 | ||
| }
 |