YYPOST群发软件 发表于 2026-1-21 08:59:23

AIWROK软件H5网页被主脚本获取值用法

AIWROK软件H5网页被主脚本获取值用法






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

var publicData = (function() {
    var dataStore = {};
   
    return {
      set: function(key, value) {
            dataStore = value;
            printl('已设置公共数据: ' + key + ' = ' + value);
      },
      
      get: function(key) {
            var value = dataStore;
            printl('获取公共数据: ' + key + ' = ' + value);
            return value;
      },
      
      remove: function(key) {
            var oldValue = dataStore;
            delete dataStore;
            printl('已删除公共数据: ' + key + ', 原值: ' + oldValue);
            return oldValue;
      },
      
      clear: function() {
            dataStore = {};
            printl('已清空所有公共数据');
      },
      
      has: function(key) {
            return key in dataStore;
      },
      
      keys: function() {
            return Object.keys(dataStore);
      },
      
      size: function() {
            return Object.keys(dataStore).length;
      }
    };
})();

var webView = null;

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

function printl(message) {
    console.log(message);
    if (typeof showResult === 'function') {
      showResult(message);
    }
}

function showResult(message) {
    try {
      if (typeof document !== 'undefined' && document.getElementById('result')) {
            document.getElementById('result').innerText = message;
      } else {
            console.log(message);
      }
    } catch (e) {
      console.log(message);
    }
}

function getH5Value(jsCode) {
    if (!webView) {
      printl('错误:WebView未设置,请先调用setWebView()');
      return null;
    }
   
    try {
      if (typeof webView.runWebJs === 'function') {
            var result = webView.runWebJs(jsCode);
            return result;
      } else {
            printl('WebView的runWebJs方法不可用');
            return null;
      }
    } catch (e) {
      printl('runWebJs方法执行失败: ' + e.message);
      return null;
    }
}

function getH5TextValue() {
    var jsCode = "(function() {" +
      "var input = document.getElementById('input1');" +
      "if (input) {" +
      "    return input.value;" +
      "} else {" +
      "    var inputs = document.getElementsByName('input1');" +
      "    if (inputs.length > 0) {" +
      "      return inputs.value;" +
      "    } else {" +
      "      return '未找到文本框元素';" +
      "    }" +
      "}" +
      "})()";
   
    var result = getH5Value(jsCode);
    printl('文本框值: ' + result);
    return result;
}

function getH5DropdownValue() {
    var jsCode = "(function() {" +
      "var dropdown = document.getElementById('dropdown');" +
      "if (dropdown) {" +
      "    return dropdown.options.value;" +
      "} else {" +
      "    return '未找到下拉框元素';" +
      "}" +
      "})()";
   
    var result = getH5Value(jsCode);
    printl('下拉框值: ' + result);
    return result;
}

function getH5RadioValue() {
    var jsCode = "(function() {" +
      "var radios = document.getElementsByName('radiogroup');" +
      "for (var i = 0; i < radios.length; i++) {" +
      "    if (radios.checked) {" +
      "      return radios.value;" +
      "    }" +
      "}" +
      "return '未选择';" +
      "})()";
   
    var result = getH5Value(jsCode);
    printl('单选按钮值: ' + result);
    return result;
}

function getH5CheckboxValue() {
    var jsCode = "(function() {" +
      "var checkboxes = document.querySelectorAll('input, input');" +
      "var selectedValues = [];" +
      "for (var i = 0; i < checkboxes.length; i++) {" +
      "    if (checkboxes.checked) {" +
      "      selectedValues.push(checkboxes.value);" +
      "    }" +
      "}" +
      "return selectedValues.length > 0 ? selectedValues.join(',') : '未选择';" +
      "})()";
   
    var result = getH5Value(jsCode);
    printl('多选框值: ' + result);
    return result;
}

function getH5TaskSelections() {
    var jsCode = "(function() {" +
      "var taskCheckboxes = document.querySelectorAll('input');" +
      "var selectedTasks = [];" +
      "for (var i = 0; i < taskCheckboxes.length; i++) {" +
      "    if (taskCheckboxes.checked) {" +
      "      selectedTasks.push(taskCheckboxes.value);" +
      "    }" +
      "}" +
      "return selectedTasks.length > 0 ? selectedTasks.join(',') : '未选择任务';" +
      "})()";
   
    var result = getH5Value(jsCode);
    printl('任务选项值: ' + result);
    return result;
}

function getH5AllTasksInfo() {
    var jsCode = "(function() {" +
      "var taskCheckboxes = document.querySelectorAll('input');" +
      "var tasksInfo = [];" +
      "for (var i = 0; i < taskCheckboxes.length; i++) {" +
      "    tasksInfo.push({" +
      "      id: taskCheckboxes.id," +
      "      value: taskCheckboxes.value," +
      "      checked: taskCheckboxes.checked" +
      "    });" +
      "}" +
      "return JSON.stringify(tasksInfo);" +
      "})()";
   
    var result = getH5Value(jsCode);
    printl('所有任务选项信息: ' + result);
    return result;
}

function getH5InteractionInfo() {
    var jsCode = "(function() {" +
      "try {" +
      "var info = {};" +
      "info.currentStatus = document.getElementById('current-status') ? document.getElementById('current-status').textContent : '未找到';" +
      "info.connectionStatus = document.getElementById('connection-status') ? document.getElementById('connection-status').textContent : '未找到';" +
      "info.lastInteraction = document.getElementById('last-interaction') ? document.getElementById('last-interaction').textContent : '未找到';" +
      "info.availableTasks = document.getElementById('available-tasks') ? document.getElementById('available-tasks').textContent : '未找到';" +
      "return JSON.stringify(info);" +
      "} catch(e) { return 'Error: ' + e.message; }" +
      "})()";
   
    var result = getH5Value(jsCode);
    printl('交互信息: ' + result);
    return result;
}

function getAllH5FormValues() {
    var jsCode = "(function() {" +
      "try {" +
      "var formData = {};" +
      "var input = document.getElementById('input1');" +
      "formData.input1 = input ? input.value : '未找到';" +
      "var dropdown = document.getElementById('dropdown');" +
      "formData.dropdown = dropdown ? dropdown.options.value : '未找到';" +
      "var radios = document.getElementsByName('radiogroup');" +
      "formData.radio = '未选择';" +
      "for (var i = 0; i < radios.length; i++) {" +
      "    if (radios.checked) {" +
      "      formData.radio = radios.value;" +
      "      break;" +
      "    }" +
      "}" +
      "var checkboxes = document.querySelectorAll('input, input');" +
      "formData.checkboxes = [];" +
      "for (var i = 0; i < checkboxes.length; i++) {" +
      "    if (checkboxes.checked) {" +
      "      formData.checkboxes.push(checkboxes.value);" +
      "    }" +
      "}" +
      "var taskCheckboxes = document.querySelectorAll('input');" +
      "formData.tasks = [];" +
      "for (var i = 0; i < taskCheckboxes.length; i++) {" +
      "    if (taskCheckboxes.checked) {" +
      "      formData.tasks.push(taskCheckboxes.value);" +
      "    }" +
      "}" +
      "return JSON.stringify(formData);" +
      "} catch(e) { return 'Error: ' + e.message; }" +
      "})()";
   
    var result = getH5Value(jsCode);
    printl('所有表单值: ' + result);
    return result;
}

function 演示获取H5值() {
    printl('=== 开始演示从H5页面获取表单值 ===');
   
    if (!webView) {
      printl('WebView未设置,请先设置WebView引用');
      return;
    }
   
    var textValue = getH5TextValue();
    var dropdownValue = getH5DropdownValue();
    var radioValue = getH5RadioValue();
    var checkboxValue = getH5CheckboxValue();
    var taskValue = getH5TaskSelections();
   
    printl('=== H5表单值获取演示完成 ===');
}

function demoGetH5Values() {
    演示获取H5值();
}

function 获取H5选中项目() {
    printl('=== 开始获取H5页面选中的项目 ===');
   
    if (!webView) {
      printl('WebView未设置,请先设置WebView引用');
      return;
    }
   
    var selectedTasks = getH5TaskSelections();
    printl('H5页面选中的项目: ' + selectedTasks);
   
    printl('=== 获取H5页面选中项目完成 ===');
}

function getH5SelectedItems() {
    获取H5选中项目();
}

function 测试函数2() {
    printl('测试函数2运行中');
   
    printl('=== 开始从H5页面获取表单值 ===');
   
    var allValues = getAllH5FormValues();
    printl('所有表单值: ' + allValues);
   
    printl('=== H5表单值获取完成 ===');
}

function testFunction2() {
    测试函数2();
}

function 演示公共数据操作() {
    printl('=== 开始演示公共数据操作 ===');
   
    publicData.set('文本值', '这是一个文本值');
    publicData.set('数字值', 123);
    publicData.set('布尔值', true);
    publicData.set('对象值', {name: '测试', count: 1});
   
    var textValue = publicData.get('文本值');
    printl('获取到文本值: ' + textValue);
   
    var numValue = publicData.get('数字值');
    printl('获取到数字值: ' + numValue);
   
    var boolValue = publicData.get('布尔值');
    printl('获取到布尔值: ' + boolValue);
   
    var objValue = publicData.get('对象值');
    printl('获取到对象值: ' + JSON.stringify(objValue));
   
    var hasText = publicData.has('文本值');
    printl('是否存在文本值键: ' + hasText);
   
    var allKeys = publicData.keys();
    printl('所有键: ' + allKeys.join(', '));
   
    var size = publicData.size();
    printl('数据项数量: ' + size);
   
    printl('=== 公共数据操作演示完成 ===');
}

function 主要演示() {
    setWebView(webView);
    演示获取H5值();
    测试函数2();
}

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

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

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

function 获取演示页面所有数据() {
    printl('=== 开始获取演示页面所有数据 ===');
   
    if (!webView) {
      printl('WebView未设置,请先设置WebView引用');
      return null;
    }
   
    var allData = {};
   
    allData.input1 = getH5TextValue();
    allData.dropdown = getH5DropdownValue();
    allData.radio = getH5RadioValue();
    allData.checkboxes = getH5CheckboxValue();
    allData.selectedTasks = getH5TaskSelections();
   
    var tasksInfoStr = getH5AllTasksInfo();
    try {
      allData.tasksInfo = JSON.parse(tasksInfoStr);
    } catch (e) {
      allData.tasksInfo = tasksInfoStr;
    }
   
    var interactionInfoStr = getH5InteractionInfo();
    try {
      allData.interactionInfo = JSON.parse(interactionInfoStr);
    } catch (e) {
      allData.interactionInfo = interactionInfoStr;
    }
   
    var allFormValuesStr = getAllH5FormValues();
    try {
      allData.allFormValues = JSON.parse(allFormValuesStr);
    } catch (e) {
      allData.allFormValues = allFormValuesStr;
    }
   
    publicData.set('演示页面数据', allData);
   
    printl('=== 演示页面所有数据获取完成 ===');
    printl('完整数据: ' + JSON.stringify(allData, null, 2));
   
    return allData;
}

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

function 执行获取演示数据() {
    printl('开始执行获取演示页面数据...');
    var allData = 获取演示页面所有数据();
    printl('获取演示页面数据执行完毕');
    return allData;
}



页: [1]
查看完整版本: AIWROK软件H5网页被主脚本获取值用法