135 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Dart
		
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Dart
		
	
	
	
| class WindowsJs {
 | |
|   /// 点击监听
 | |
|   static String clickEventJs = '''
 | |
| document.addEventListener("click", function (event) {
 | |
|   var x = event.clientX;
 | |
|   var y = event.clientY;
 | |
| 
 | |
|   var click = { "x": x, "y": y };
 | |
|   var value = { click: click };
 | |
| 
 | |
|   // 发送消息
 | |
|   window.chrome.webview.postMessage(value);
 | |
|   
 | |
|   // window.chrome.webview.postMessage({"text":event.target.textContent,"end":event.target.textContent === "进入游戏"});
 | |
| 
 | |
|   // 检查点击的元素是否有类名为 'btn'
 | |
|   if (event.target.textContent === "进入游戏") {
 | |
|     // 获取按钮上显示的文本内容
 | |
|     window.chrome.webview.postMessage({ "成功获取到btn": 1 });
 | |
|     // window.chrome.webview.postMessage({ "btn": event.target.textContent });
 | |
| 
 | |
|     // 阻止默认的链接跳转行为
 | |
|     event.preventDefault();
 | |
| 
 | |
|     var oldUrl = window.location.href;
 | |
|     var classUrl = event.target.href;
 | |
|     
 | |
|     var str = oldUrl;
 | |
|     var startIndex = str.indexOf('www.');
 | |
|     var endIndex = str.indexOf('/', startIndex);
 | |
|     var url = str.substring(startIndex, endIndex);
 | |
|     var newUrl = "https://" + url + "/game/";
 | |
|     
 | |
|     // window.chrome.webview.postMessage({"元素地址": classUrl ,"旧地址":window.location.href ,"截取":url,"新地址": newUrl});
 | |
|     window.location.href = newUrl;
 | |
|       
 | |
|   }
 | |
| });
 | |
|   ''';
 | |
| 
 | |
|   /// 滚动监听
 | |
|   static String scrollEventJs = '''
 | |
|   // window.onscroll = function() {
 | |
|   //    // 获取垂直滚动位置
 | |
|   //    var scrollTop = window.scrollY;
 | |
|   //    window.chrome.webview.postMessage({"scroll": 1 ,"y": scrollTop });
 | |
|   // };
 | |
|   // 轮询检查元素是否存在
 | |
|   // const checkExist = setInterval(function() {
 | |
|   //   const contentWrap = document.querySelector('content');
 | |
|   //   const clList = document.querySelector('cl-list');
 | |
|   //   console.log('轮询');
 | |
|   //   if (contentWrap && clList) {
 | |
|   //     clearInterval(checkExist); // 停止轮询
 | |
|   //     console.log('停止轮询');
 | |
|   //     contentWrap.addEventListener('scroll', function() {
 | |
|   //       console.log('contentWrap position:', element.scrollTop);
 | |
|   //     });
 | |
|   //     clList.addEventListener('scroll', function() {
 | |
|   //       console.log('clList position:', element.scrollTop);
 | |
|   //     });
 | |
|   //   }
 | |
|   // }, 500); // 每500毫秒检查一次
 | |
| 
 | |
|   ''';
 | |
| 
 | |
|   /// 滚动到
 | |
|   static String scrollTo(int value){
 | |
|     return '''
 | |
|     window.scrollTo({
 | |
|     top: $value,
 | |
|     behavior: 'smooth'  // 可选,设置滚动行为为平滑滚动
 | |
|     });
 | |
|     ''';
 | |
|   }
 | |
| 
 | |
|   /// 模拟点击
 | |
|   static String clickJs(int x, int y) {
 | |
|     return 'document.elementFromPoint($x, $y).click();';
 | |
|   }
 | |
| 
 | |
|   /// 输入
 | |
|   static String inputJs(int value) {
 | |
|     return '''
 | |
|       console.log('输入赋值');
 | |
|       var inputEvent = new Event('input', {
 | |
|         bubbles: true,
 | |
|         cancelable: true,
 | |
|       });
 | |
|       var inputElement = document.querySelector(".bet-money");
 | |
|       inputElement.value = "$value";
 | |
|       inputElement.dispatchEvent(inputEvent);
 | |
|       
 | |
|       // var inputElements = document.querySelectorAll(".bet-money");
 | |
|       // inputElements.forEach(function(element) {
 | |
|       //   var inputEvent = new Event('input', {
 | |
|       //     bubbles: true,
 | |
|       //     cancelable: true,
 | |
|       //   });
 | |
|       //   element.value = "$value";
 | |
|       //   element.dispatchEvent(inputEvent);
 | |
|       // });
 | |
|       // const contentWrap = document.querySelector('content');
 | |
|       // const clList = document.querySelector('cl-list');
 | |
|       // console.log(contentWrap, clList);
 | |
|     ''';
 | |
|   }
 | |
| 
 | |
| 
 | |
|   /// 监听加载,在加载完成后缩放
 | |
|   static String onloadZoom(int zoom){
 | |
|     assert(zoom >= 1 && zoom <= 100, 'zoom 1 到 100');
 | |
|     return '''
 | |
| window.onload = function () {
 | |
|   var currentUrl = window.location.href;
 | |
|   if (currentUrl.endsWith('game/')) {
 | |
|      ${WindowsJs.zoom(zoom)}
 | |
|   }
 | |
| };
 | |
| ''';
 | |
|   }
 | |
| 
 | |
| 
 | |
|   /// 修改缩放
 | |
|   static String zoom(int zoom){
 | |
|     assert(zoom >= 1 && zoom <= 100, 'zoom 1 到 100');
 | |
|     return '''
 | |
|       document.body.style.zoom = "$zoom%";
 | |
|     ''';
 | |
|   }
 | |
| 
 | |
|   static String message = 'window.chrome.webview.postMessage({x:3333});';
 | |
| 
 | |
| }
 |