自动发帖软件

标题: AIWROK软件H5网页被主脚本获取值用法 [打印本页]

作者: 发帖软件    时间: 4 小时前
标题: AIWROK软件H5网页被主脚本获取值用法

AIWROK软件H5网页被主脚本获取值用法
AIWROK软件H5网页被主脚本获取值用法 群发软件发帖工具
AIWROK软件H5网页被主脚本获取值用法 群发软件发帖工具
AIWROK软件H5网页被主脚本获取值用法 群发软件发帖工具


H5交互案例.zip (39.64 KB, 下载次数: 0)

  1. /**
  2. *🍎交流QQ群711841924群一,苹果内测群,528816639
  3. * H5页面值获取脚本
  4. * 适用于AIWROK IDE与H5页面交互
  5. */

  6. var publicData = (function() {
  7.     var dataStore = {};
  8.    
  9.     return {
  10.         set: function(key, value) {
  11.             dataStore[key] = value;
  12.             printl('已设置公共数据: ' + key + ' = ' + value);
  13.         },
  14.         
  15.         get: function(key) {
  16.             var value = dataStore[key];
  17.             printl('获取公共数据: ' + key + ' = ' + value);
  18.             return value;
  19.         },
  20.         
  21.         remove: function(key) {
  22.             var oldValue = dataStore[key];
  23.             delete dataStore[key];
  24.             printl('已删除公共数据: ' + key + ', 原值: ' + oldValue);
  25.             return oldValue;
  26.         },
  27.         
  28.         clear: function() {
  29.             dataStore = {};
  30.             printl('已清空所有公共数据');
  31.         },
  32.         
  33.         has: function(key) {
  34.             return key in dataStore;
  35.         },
  36.         
  37.         keys: function() {
  38.             return Object.keys(dataStore);
  39.         },
  40.         
  41.         size: function() {
  42.             return Object.keys(dataStore).length;
  43.         }
  44.     };
  45. })();

  46. var webView = null;

  47. function setWebView(webViewRef) {
  48.     webView = webViewRef;
  49.     printl('WebView引用已设置,可以开始与H5页面交互');
  50. }

  51. function printl(message) {
  52.     console.log(message);
  53.     if (typeof showResult === 'function') {
  54.         showResult(message);
  55.     }
  56. }

  57. function showResult(message) {
  58.     try {
  59.         if (typeof document !== 'undefined' && document.getElementById('result')) {
  60.             document.getElementById('result').innerText = message;
  61.         } else {
  62.             console.log(message);
  63.         }
  64.     } catch (e) {
  65.         console.log(message);
  66.     }
  67. }

  68. function getH5Value(jsCode) {
  69.     if (!webView) {
  70.         printl('错误:WebView未设置,请先调用setWebView()');
  71.         return null;
  72.     }
  73.    
  74.     try {
  75.         if (typeof webView.runWebJs === 'function') {
  76.             var result = webView.runWebJs(jsCode);
  77.             return result;
  78.         } else {
  79.             printl('WebView的runWebJs方法不可用');
  80.             return null;
  81.         }
  82.     } catch (e) {
  83.         printl('runWebJs方法执行失败: ' + e.message);
  84.         return null;
  85.     }
  86. }

  87. function getH5TextValue() {
  88.     var jsCode = "(function() {" +
  89.         "var input = document.getElementById('input1');" +
  90.         "if (input) {" +
  91.         "    return input.value;" +
  92.         "} else {" +
  93.         "    var inputs = document.getElementsByName('input1');" +
  94.         "    if (inputs.length > 0) {" +
  95.         "        return inputs[0].value;" +
  96.         "    } else {" +
  97.         "        return '未找到文本框元素';" +
  98.         "    }" +
  99.         "}" +
  100.         "})()";
  101.    
  102.     var result = getH5Value(jsCode);
  103.     printl('文本框值: ' + result);
  104.     return result;
  105. }

  106. function getH5DropdownValue() {
  107.     var jsCode = "(function() {" +
  108.         "var dropdown = document.getElementById('dropdown');" +
  109.         "if (dropdown) {" +
  110.         "    return dropdown.options[dropdown.selectedIndex].value;" +
  111.         "} else {" +
  112.         "    return '未找到下拉框元素';" +
  113.         "}" +
  114.         "})()";
  115.    
  116.     var result = getH5Value(jsCode);
  117.     printl('下拉框值: ' + result);
  118.     return result;
  119. }

  120. function getH5RadioValue() {
  121.     var jsCode = "(function() {" +
  122.         "var radios = document.getElementsByName('radiogroup');" +
  123.         "for (var i = 0; i < radios.length; i++) {" +
  124.         "    if (radios[i].checked) {" +
  125.         "        return radios[i].value;" +
  126.         "    }" +
  127.         "}" +
  128.         "return '未选择';" +
  129.         "})()";
  130.    
  131.     var result = getH5Value(jsCode);
  132.     printl('单选按钮值: ' + result);
  133.     return result;
  134. }

  135. function getH5CheckboxValue() {
  136.     var jsCode = "(function() {" +
  137.         "var checkboxes = document.querySelectorAll('input[name=\"check1\"], input[name=\"check2\"]');" +
  138.         "var selectedValues = [];" +
  139.         "for (var i = 0; i < checkboxes.length; i++) {" +
  140.         "    if (checkboxes[i].checked) {" +
  141.         "        selectedValues.push(checkboxes[i].value);" +
  142.         "    }" +
  143.         "}" +
  144.         "return selectedValues.length > 0 ? selectedValues.join(',') : '未选择';" +
  145.         "})()";
  146.    
  147.     var result = getH5Value(jsCode);
  148.     printl('多选框值: ' + result);
  149.     return result;
  150. }

  151. function getH5TaskSelections() {
  152.     var jsCode = "(function() {" +
  153.         "var taskCheckboxes = document.querySelectorAll('input[name=\"taskgroup\"]');" +
  154.         "var selectedTasks = [];" +
  155.         "for (var i = 0; i < taskCheckboxes.length; i++) {" +
  156.         "    if (taskCheckboxes[i].checked) {" +
  157.         "        selectedTasks.push(taskCheckboxes[i].value);" +
  158.         "    }" +
  159.         "}" +
  160.         "return selectedTasks.length > 0 ? selectedTasks.join(',') : '未选择任务';" +
  161.         "})()";
  162.    
  163.     var result = getH5Value(jsCode);
  164.     printl('任务选项值: ' + result);
  165.     return result;
  166. }

  167. function getH5AllTasksInfo() {
  168.     var jsCode = "(function() {" +
  169.         "var taskCheckboxes = document.querySelectorAll('input[name=\"taskgroup\"]');" +
  170.         "var tasksInfo = [];" +
  171.         "for (var i = 0; i < taskCheckboxes.length; i++) {" +
  172.         "    tasksInfo.push({" +
  173.         "        id: taskCheckboxes[i].id," +
  174.         "        value: taskCheckboxes[i].value," +
  175.         "        checked: taskCheckboxes[i].checked" +
  176.         "    });" +
  177.         "}" +
  178.         "return JSON.stringify(tasksInfo);" +
  179.         "})()";
  180.    
  181.     var result = getH5Value(jsCode);
  182.     printl('所有任务选项信息: ' + result);
  183.     return result;
  184. }

  185. function getH5InteractionInfo() {
  186.     var jsCode = "(function() {" +
  187.         "try {" +
  188.         "var info = {};" +
  189.         "info.currentStatus = document.getElementById('current-status') ? document.getElementById('current-status').textContent : '未找到';" +
  190.         "info.connectionStatus = document.getElementById('connection-status') ? document.getElementById('connection-status').textContent : '未找到';" +
  191.         "info.lastInteraction = document.getElementById('last-interaction') ? document.getElementById('last-interaction').textContent : '未找到';" +
  192.         "info.availableTasks = document.getElementById('available-tasks') ? document.getElementById('available-tasks').textContent : '未找到';" +
  193.         "return JSON.stringify(info);" +
  194.         "} catch(e) { return 'Error: ' + e.message; }" +
  195.         "})()";
  196.    
  197.     var result = getH5Value(jsCode);
  198.     printl('交互信息: ' + result);
  199.     return result;
  200. }

  201. function getAllH5FormValues() {
  202.     var jsCode = "(function() {" +
  203.         "try {" +
  204.         "var formData = {};" +
  205.         "var input = document.getElementById('input1');" +
  206.         "formData.input1 = input ? input.value : '未找到';" +
  207.         "var dropdown = document.getElementById('dropdown');" +
  208.         "formData.dropdown = dropdown ? dropdown.options[dropdown.selectedIndex].value : '未找到';" +
  209.         "var radios = document.getElementsByName('radiogroup');" +
  210.         "formData.radio = '未选择';" +
  211.         "for (var i = 0; i < radios.length; i++) {" +
  212.         "    if (radios[i].checked) {" +
  213.         "        formData.radio = radios[i].value;" +
  214.         "        break;" +
  215.         "    }" +
  216.         "}" +
  217.         "var checkboxes = document.querySelectorAll('input[name=\"check1\"], input[name=\"check2\"]');" +
  218.         "formData.checkboxes = [];" +
  219.         "for (var i = 0; i < checkboxes.length; i++) {" +
  220.         "    if (checkboxes[i].checked) {" +
  221.         "        formData.checkboxes.push(checkboxes[i].value);" +
  222.         "    }" +
  223.         "}" +
  224.         "var taskCheckboxes = document.querySelectorAll('input[name=\"taskgroup\"]');" +
  225.         "formData.tasks = [];" +
  226.         "for (var i = 0; i < taskCheckboxes.length; i++) {" +
  227.         "    if (taskCheckboxes[i].checked) {" +
  228.         "        formData.tasks.push(taskCheckboxes[i].value);" +
  229.         "    }" +
  230.         "}" +
  231.         "return JSON.stringify(formData);" +
  232.         "} catch(e) { return 'Error: ' + e.message; }" +
  233.         "})()";
  234.    
  235.     var result = getH5Value(jsCode);
  236.     printl('所有表单值: ' + result);
  237.     return result;
  238. }

  239. function 演示获取H5值() {
  240.     printl('=== 开始演示从H5页面获取表单值 ===');
  241.    
  242.     if (!webView) {
  243.         printl('WebView未设置,请先设置WebView引用');
  244.         return;
  245.     }
  246.    
  247.     var textValue = getH5TextValue();
  248.     var dropdownValue = getH5DropdownValue();
  249.     var radioValue = getH5RadioValue();
  250.     var checkboxValue = getH5CheckboxValue();
  251.     var taskValue = getH5TaskSelections();
  252.    
  253.     printl('=== H5表单值获取演示完成 ===');
  254. }

  255. function demoGetH5Values() {
  256.     演示获取H5值();
  257. }

  258. function 获取H5选中项目() {
  259.     printl('=== 开始获取H5页面选中的项目 ===');
  260.    
  261.     if (!webView) {
  262.         printl('WebView未设置,请先设置WebView引用');
  263.         return;
  264.     }
  265.    
  266.     var selectedTasks = getH5TaskSelections();
  267.     printl('H5页面选中的项目: ' + selectedTasks);
  268.    
  269.     printl('=== 获取H5页面选中项目完成 ===');
  270. }

  271. function getH5SelectedItems() {
  272.     获取H5选中项目();
  273. }

  274. function 测试函数2() {
  275.     printl('测试函数2运行中');
  276.    
  277.     printl('=== 开始从H5页面获取表单值 ===');
  278.    
  279.     var allValues = getAllH5FormValues();
  280.     printl('所有表单值: ' + allValues);
  281.    
  282.     printl('=== H5表单值获取完成 ===');
  283. }

  284. function testFunction2() {
  285.     测试函数2();
  286. }

  287. function 演示公共数据操作() {
  288.     printl('=== 开始演示公共数据操作 ===');
  289.    
  290.     publicData.set('文本值', '这是一个文本值');
  291.     publicData.set('数字值', 123);
  292.     publicData.set('布尔值', true);
  293.     publicData.set('对象值', {name: '测试', count: 1});
  294.    
  295.     var textValue = publicData.get('文本值');
  296.     printl('获取到文本值: ' + textValue);
  297.    
  298.     var numValue = publicData.get('数字值');
  299.     printl('获取到数字值: ' + numValue);
  300.    
  301.     var boolValue = publicData.get('布尔值');
  302.     printl('获取到布尔值: ' + boolValue);
  303.    
  304.     var objValue = publicData.get('对象值');
  305.     printl('获取到对象值: ' + JSON.stringify(objValue));
  306.    
  307.     var hasText = publicData.has('文本值');
  308.     printl('是否存在文本值键: ' + hasText);
  309.    
  310.     var allKeys = publicData.keys();
  311.     printl('所有键: ' + allKeys.join(', '));
  312.    
  313.     var size = publicData.size();
  314.     printl('数据项数量: ' + size);
  315.    
  316.     printl('=== 公共数据操作演示完成 ===');
  317. }

  318. function 主要演示() {
  319.     setWebView(webView);
  320.     演示获取H5值();
  321.     测试函数2();
  322. }

  323. function 执行所有演示() {
  324.     printl('开始执行所有演示...');
  325.     演示获取H5值();
  326.     测试函数2();
  327.     演示公共数据操作();
  328.     printl('所有演示执行完毕');
  329. }

  330. function 执行H5演示() {
  331.     printl('开始执行H5值获取演示...');
  332.     演示获取H5值();
  333.     printl('H5值获取演示执行完毕');
  334. }

  335. function 执行公共数据演示() {
  336.     printl('开始执行公共数据演示...');
  337.     演示公共数据操作();
  338.     printl('公共数据演示执行完毕');
  339. }

  340. function 获取演示页面所有数据() {
  341.     printl('=== 开始获取演示页面所有数据 ===');
  342.    
  343.     if (!webView) {
  344.         printl('WebView未设置,请先设置WebView引用');
  345.         return null;
  346.     }
  347.    
  348.     var allData = {};
  349.    
  350.     allData.input1 = getH5TextValue();
  351.     allData.dropdown = getH5DropdownValue();
  352.     allData.radio = getH5RadioValue();
  353.     allData.checkboxes = getH5CheckboxValue();
  354.     allData.selectedTasks = getH5TaskSelections();
  355.    
  356.     var tasksInfoStr = getH5AllTasksInfo();
  357.     try {
  358.         allData.tasksInfo = JSON.parse(tasksInfoStr);
  359.     } catch (e) {
  360.         allData.tasksInfo = tasksInfoStr;
  361.     }
  362.    
  363.     var interactionInfoStr = getH5InteractionInfo();
  364.     try {
  365.         allData.interactionInfo = JSON.parse(interactionInfoStr);
  366.     } catch (e) {
  367.         allData.interactionInfo = interactionInfoStr;
  368.     }
  369.    
  370.     var allFormValuesStr = getAllH5FormValues();
  371.     try {
  372.         allData.allFormValues = JSON.parse(allFormValuesStr);
  373.     } catch (e) {
  374.         allData.allFormValues = allFormValuesStr;
  375.     }
  376.    
  377.     publicData.set('演示页面数据', allData);
  378.    
  379.     printl('=== 演示页面所有数据获取完成 ===');
  380.     printl('完整数据: ' + JSON.stringify(allData, null, 2));
  381.    
  382.     return allData;
  383. }

  384. function getAllDemoPageData() {
  385.     return 获取演示页面所有数据();
  386. }

  387. function 执行获取演示数据() {
  388.     printl('开始执行获取演示页面数据...');
  389.     var allData = 获取演示页面所有数据();
  390.     printl('获取演示页面数据执行完毕');
  391.     return allData;
  392. }
复制代码







欢迎光临 自动发帖软件 (http://www.fatiegongju.com/) Powered by Discuz! X3.2