注册 登录
发贴工具
查看: 10|回复: 0
打印 上一主题 下一主题

[24小时收录超级好的网站] 浏览器H5方法小结

[复制链接]

2389

主题

2437

帖子

1万

积分

积分
14544
跳转到指定楼层
楼主
浏览器H5方法小结
浏览器H5方法小结 群发软件发帖工具
浏览器H5方法小结 群发软件发帖工具

浏览器H5方法小结 群发软件发帖工具

  1. /**
  2. * 安卓H5与原生交互整合脚本(ES5+Rhino兼容)
  3. * 用途:H5调用原生API + APP调用H5逻辑
  4. * 使用:直接在Rhino引擎执行,或拆分H5/APP代码分别部署
  5. 🍎交流QQ群711841924群一,苹果内测群,528816639
  6. */

  7. // ==================================================
  8. // 一、核心API方法(H5调用原生专用)
  9. // ==================================================
  10. // 1. H5执行APP端JS文件
  11. function runJsFile(file) {
  12.     window.at.runJsFile(file);
  13. }

  14. // 2. H5调用APP端指定方法(多参数用JSON字符串)
  15. function callAppFunction(funname, arg) {
  16.     window.at.callFunction(funname, arg); // 兼容window.at.callFun
  17. }

  18. // 3. 获取项目根目录
  19. function getAppRootPath() {
  20.     var rootPath = window.at.getRootPath();
  21.     printl("项目根目录:" + rootPath);
  22.     return rootPath;
  23. }

  24. // 4. 获取项目资源目录
  25. function getAppResourcesPath() {
  26.     var resPath = window.at.getResourcesPath();
  27.     printl("资源目录:" + resPath);
  28.     return resPath;
  29. }

  30. // 5. 存储数据到APP本地文件
  31. function setAppConfig(path, arg, value) {
  32.     window.at.setConfig(path, arg, value);
  33.     printl("数据存储成功:" + path + "|" + arg);
  34. }

  35. // 6. 从APP本地文件读取数据
  36. function getAppConfig(path, arg, defaultValue) {
  37.     var data = window.at.getConfig(path, arg, defaultValue);
  38.     printl("读取数据:" + data);
  39.     return data;
  40. }

  41. // 7. H5向APP传公共变量
  42. function setAppPublicData(key, value) {
  43.     window.at.publicSet(key, value);
  44.     printl("公共变量设置:" + key + "=" + value);
  45. }

  46. // 8. H5从APP读公共变量
  47. function getAppPublicData(key) {
  48.     var value = window.at.publicGet(key);
  49.     printl("公共变量读取:" + key + "=" + value);
  50.     return value;
  51. }


  52. // ==================================================
  53. // 二、H5示例代码(复制此变量内的字符串,保存为.html文件)
  54. // ==================================================
  55. var H5_DEMO_HTML = `
  56. <!DOCTYPE html>
  57. <html lang="en">
  58. <head>
  59.     <meta charset="UTF-8">
  60.     <title>H5-原生交互演示</title>
  61.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  62.     <style>
  63.         body {background:#222;color:#fff;padding:20px;font-family:Arial;}
  64.         .form-group {margin-bottom:20px;}
  65.         input,select,button {background:#333;color:#fff;border:none;border-radius:5px;padding:10px;margin-right:10px;}
  66.         button {background:#4CAF50;width:60%;font-size:20px;margin-top:20px;cursor:pointer;}
  67.     </style>
  68.     <script language="JavaScript">
  69.         // 调用APP的main方法
  70.         function callAppMain() {
  71.             var inputVal = document.getElementById("input1").value;
  72.             callAppFunction("main", inputVal);
  73.         }

  74.         // 执行APP代码块
  75.         function runAppJs() {
  76.             window.at.runJs(function() {
  77.                 printl("H5触发APP执行");
  78.                 auto.home();
  79.             }.toString());
  80.         }

  81.         // 执行APP JS文件
  82.         function runAppJsFile() {
  83.             runJsFile("主脚本.js");
  84.         }

  85.         // 测试配置读写
  86.         function testConfig() {
  87.             var resPath = getAppResourcesPath();
  88.             var path = resPath + "test.txt";
  89.             setAppConfig(path, "user", "testUser");
  90.             var user = getAppConfig(path, "user", "default");
  91.             alert("读取用户名:" + user);
  92.         }

  93.         // 测试公共变量
  94.         function testPublicData() {
  95.             setAppPublicData("h5Val", document.getElementById("input1").value);
  96.             var appVal = getAppPublicData("appInfo");
  97.             alert("APP回传:" + appVal);
  98.         }
  99.     </script>
  100. </head>
  101. <body>
  102.     <h1>H5-原生交互演示</h1>
  103.     <div class="form-group">
  104.         <label>输入框:</label>
  105.         <input type="text" id="input1" value="测试数据">
  106.     </div>
  107.     <button onclick="callAppMain()">调用APP main</button>
  108.     <button onclick="runAppJs()">执行APP代码</button>
  109.     <button onclick="runAppJsFile()">执行APP JS文件</button>
  110.     <button onclick="testConfig()">测试配置读写</button>
  111.     <button onclick="testPublicData()">测试公共变量</button>
  112. </body>
  113. </html>
  114. `;
  115. printl("H5代码已生成,提取H5_DEMO_HTML变量内容保存为.html文件");


  116. // ==================================================
  117. // 三、APP端调用H5代码(Rhino引擎直接执行)
  118. // ==================================================
  119. // 1. 初始化WebView
  120. function initWebView() {
  121.     var ac = new activity();
  122.     var layout = [
  123.         '<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"',
  124.         '    android:layout_width="match_parent"',
  125.         '    android:layout_height="match_parent"',
  126.         '    android:orientation="vertical">',
  127.         '    <WebView android:id="@+id/web"',
  128.         '        android:layout_width="match_parent"',
  129.         '        android:layout_height="match_parent" />',
  130.         '</LinearLayout>'
  131.     ].join('\n');
  132.     ac.loadXML(layout);
  133.     sleep.millisecond(400);
  134.     var web = ac.findWebViewById("web");
  135.     printl("WebView初始化完成");
  136.     return web;
  137. }

  138. // 2. 加载H5页面
  139. function loadH5(webView, h5Path) {
  140.     webView.url(h5Path);
  141.     printl("加载H5:" + h5Path);
  142.     sleep.millisecond(1000); // 等待加载
  143. }

  144. // 3. 向H5注入JS
  145. function runH5Js(webView, jsCode) {
  146.     var result = webView.runWebJs(jsCode);
  147.     printl("H5 JS执行结果:" + result);
  148.     return result;
  149. }

  150. // 4. APP端方法(供H5调用)
  151. function main(arg) {
  152.     printl("APP收到H5参数:" + arg);
  153.     // 解析多参数(若H5传JSON)
  154.     if (arg.indexOf("{") !== -1) {
  155.         var obj = JSON.parse(arg);
  156.         printl("解析参数:" + obj.name + "," + obj.age);
  157.     }
  158.     // 向H5回传数据
  159.     publicData.set("appInfo", "已收到:" + arg);
  160. }

  161. // 5. APP调用H5完整流程
  162. function appH5Flow() {
  163.     var web = initWebView();
  164.     // 加载H5(需替换为实际保存的.html路径)
  165.     loadH5(web, "/代码/h5Demo.html");
  166.     // 向H5注入JS修改输入框
  167.     runH5Js(web, 'document.getElementById("input1").value = "APP注入值"');
  168.     // 触发H5按钮点击
  169.     runH5Js(web, 'document.querySelector("button[onclick=\'callAppMain()\']").click()');
  170. }

  171. // 执行APP-H5交互流程(取消注释即可运行)
  172. // appH5Flow();


  173. // ==================================================
  174. // 四、使用说明
  175. // ==================================================
  176. /*
  177. 1. H5部署:
  178.    - 复制H5_DEMO_HTML变量内的字符串,保存为"h5Demo.html"
  179.    - 将文件放入APP可访问路径(如"/代码/")

  180. 2. APP执行:
  181.    - 在Rhino引擎中运行此JS文件
  182.    - 取消"appH5Flow();"注释,启动完整交互

  183. 3. 注意:
  184.    - 确保APP有SD卡读写权限(配置读写需)
  185.    - "主脚本.js"需存在于APP根目录(若执行runAppJsFile)
  186.    - 日志通过printl输出,在Rhino控制台查看
  187. */
复制代码
1. 方法:runJsFile(H5 运行 APP JS 文件)
信息类别
详情说明
方法作用
H5 页面调用并执行 APP 端指定的 JS 脚本文件
方法语法
window.at.runJsFile(file)
参数详情
名称:file类型:String说明:需执行的 APP 端 JS 文件路径或文件名(如 “主脚本.js”)
返回值
核心功能描述
从 H5 端触发,加载并运行 APP 本地的 JS 文件,实现调用 APP 端预设脚本的需求
调用示例代码
// H5中调用APP端的“主脚本.js”
window.at.runJsFile('主脚本.js');
2. 方法:callFunction /callFun(H5 执行脚本方法)
信息类别
详情说明
方法作用
H5 页面调用 APP 原生脚本中定义的指定方法,并传递参数
方法语法
window.at.callFunction(funname, arg)
或 window.at.callFun(funname, arg)
参数详情
1. 名称:funname类型:String说明:APP 端需调用的方法名2. 名称:arg类型:String说明:传递给方法的参数(多参数需用 JSON 字符串封装,如'{"name":"test","value":123}'
返回值
核心功能描述
建立 H5 与 APP 原生脚本的方法调用通道,支持 H5 向 APP 传递数据并触发指定逻辑
调用示例代码
// H5调用APP端“main”方法,传递参数“hello”
window.at.callFun('main', 'hello');
// 多参数示例(JSON字符串)
window.at.callFun('submitData', '{"username":"user1","age":20}');
3. 方法:getRootPath(获取项目根目录)
信息类别
详情说明
方法作用
H5 页面获取当前 APP 项目的根目录路径,用于后续文件操作(如读写文件)
方法语法
window.at.getRootPath()
参数详情
返回值
类型:String说明:返回项目根目录的绝对路径(如 “/storage/emulated/0/APP 名称 /”)
核心功能描述
提供项目根路径基准,方便 H5 拼接文件路径,实现对 APP 本地文件的访问
调用示例代码
// H5获取项目根目录并打印
var rootPath = window.at.getRootPath();console.log('项目根目录:', rootPath);
4. 方法:getResourcesPath(获取项目资源目录)
信息类别
详情说明
方法作用
H5 页面获取当前 APP 项目的资源目录路径,用于访问 APP 预设的资源文件(如配置文件)
方法语法
window.at.getResourcesPath()
参数详情
返回值
类型:String说明:返回项目资源目录的绝对路径(如 “/storage/emulated/0/APP 名称 /resources/”)
核心功能描述
定位 APP 资源文件存放路径,便于 H5 读取或写入资源目录下的文件(如配置数据)
调用示例代码
// H5获取资源目录并拼接文件路径
var resPath = window.at.getResourcesPath();
var configPath = resPath + 'config.txt'; // 资源目录下的config.txt
console.log('配置文件路径:', configPath);
5. 方法:setConfig(存储数据到指定路径)
信息类别
详情说明
方法作用
H5 页面将数据存储到 APP 本地指定路径的文件中,实现数据持久化(如保存配置)
方法语法
window.at.setConfig(path, arg, value)
参数详情
1. 名称:path类型:String说明:数据存储的文件路径(如 “/sdcard/1.txt” 或资源目录路径)2. 名称:arg类型:String说明:数据存储的参数标识(用于后续读取时定位数据)3. 名称:value类型:String说明:需存储的具体数据内容
返回值
核心功能描述
支持 H5 向 APP 本地文件写入数据,可指定存储路径和参数标识,便于后续精准读取
调用示例代码
// 1. 存储到SD卡根目录
window.at.setConfig('/sdcard/1.txt', 'a', '1');
// 2. 存储到资源目录(先获取资源路径)
var resPath = window.at.getResourcesPath();
window.at.setConfig(resPath + '1.txt', 'userInfo', '{"name":"test"}');
6. 方法:getConfig(从指定路径读取数据)
信息类别
详情说明
方法作用
H5 页面从 APP 本地指定路径的文件中读取数据,获取之前通过 setConfig 存储的内容
方法语法
window.at.getConfig(path, arg, value)
参数详情
1. 名称:path类型:String说明:数据读取的文件路径(需与存储时路径一致)2. 名称:arg类型:String说明:数据读取的参数标识(需与存储时 arg 一致)3. 名称:value类型:String说明:默认值,当文件中无对应数据时返回该值
返回值
类型:String说明:返回读取到的数据(有数据则返回实际值,无数据则返回默认值)
核心功能描述
配合 setConfig 使用,实现 H5 对 APP 本地存储数据的读取,支持默认值兜底
调用示例代码
// 1. 从SD卡读取数据(默认值为“0”)
var data1 = window.at.getConfig('/sdcard/1.txt', 'a', '0');// 2. 从资源目录读取数据(默认值为“{}”)
var resPath = window.at.getResourcesPath();
var userInfo = window.at.getConfig(resPath + '1.txt', 'userInfo', '{}');
console.log('用户信息:', userInfo);
7. 方法:publicSet(公共变量传参)
信息类别
详情说明
方法作用
H5 页面向 APP 原生端的公共变量中设置键值对,实现 H5 到 APP 的简单数据传递
方法语法
window.at.publicSet(key, value)
参数详情
1. 名称:key类型:String说明:公共变量的键名(用于 APP 端识别数据)2. 名称:value类型:String说明:公共变量的键值(需传递给 APP 的数据)
返回值
核心功能描述
轻量级数据传递方式,无需文件操作,直接通过公共变量实现 H5 与 APP 的数据交互
调用示例代码
// H5向APP公共变量设置“a=1”
window.at.publicSet('a', '1');
// APP端对应取值方式:publicData.get('a')
8. 方法:publicGet(公共变量读参)
信息类别
详情说明
方法作用
H5 页面从 APP 原生端的公共变量中读取指定键名对应的值,获取 APP 传递的数据
方法语法
window.at.publicGet(key)
参数详情
名称:key类型:String说明:需读取的公共变量键名(需与 APP 端设置的键名一致)
返回值
类型:String说明:返回公共变量中对应键名的 value 值
核心功能描述
配合 publicSet 使用,实现 APP 到 H5 的轻量级数据传递,无需文件读写操作
调用示例代码
// H5读取APP公共变量中“a”的值
var data = window.at.publicGet('a');
console.log('公共变量a的值:', data);
// APP端对应设值方式:publicData.set('a', '1')
9. 方法:url /loadUrl(APP 加载 H5 页面)
信息类别
详情说明
方法作用
APP 端通过 WebView 控件加载指定的 H5 页面(支持本地路径或网络 URL)
方法语法
web1.url(url)
或 web1.loadUrl(url)
(web1 为 WebView 控件实例)
参数详情
名称:url类型:String说明:H5 页面路径,本地路径如 “/ 代码 /h5.html”,网络路径如 “https://xxx.com/h5
返回值
核心功能描述
APP 端初始化 H5 页面的核心方法,建立 WebView 与 H5 页面的关联
调用示例代码
// 1. APP初始化WebView控件
var ac = new activity();
ac.loadXML('<!-- 布局中包含WebView(id为web) -->');
var web1 = ac.findWebViewById('web');
// 2. 加载本地H5页面
web1.url('/代码/h5.html');
// 3. 加载网络H5页面
// web1.url('https://xxx.com/test.html');
10. 方法:runWebJs(APP 执行 H5 的 JS 代码)
信息类别
详情说明
方法作用
APP 端向 WebView 中的 H5 页面注入并执行 JS 代码,实现 APP 到 H5 的逻辑触发
方法语法
web1.runWebJs(jscode)
(web1 为 WebView 控件实例)
参数详情
名称:jscode类型:String说明:需在 H5 中执行的 JS 代码字符串(如 “alert ('123')”)
返回值
类型:String说明:返回 JS 代码执行后的结果(类似 eval 执行结果,即最后一个变量的值)
核心功能描述
APP 主动控制 H5 页面逻辑,如触发 H5 弹窗、调用 H5 方法、修改 H5 页面数据
调用示例代码
// 1. APP向H5注入弹窗代码
web1.runWebJs('alert("APP触发H5弹窗")');
// 2. APP调用H5中的test方法
web1.runWebJs('test()');
// 需确保H5中已定义test方法
// 3. APP获取H5执行结果
var result = web1.runWebJs('1 + 2'); // result值为“3”
console.log('H5代码执行结果:', result);




untoAIWROK软件漂亮对接H5简单示例nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖