当前位置:网站首页 > Vue.js开发 > 正文

auto.js全局变量(js 全局变量)

# 全局变量与函数

全局变量和函数在所有模块中均可使用。 但以下变量的作用域只在模块内,详见 module:

- exports

- module

- require() 以下的对象是特定于 Auto.js 的。 有些内置对象是 JavaScript 语言本身的一部分,它们也是全局的。

一些模块中的函数为了使用方便也可以直接全局使用,这些函数在此不再赘述。例如timers模块的setInterval, setTimeout等函数。

>d 以下有一部分api,在autojs 8以上的版本中,已经去除。

不知道去除的原因是是什么。

有可能是不稳定、存BUG,或者不兼容新机型等。

为了便于开发和理解,飞云会在下面特别注明。

遇到这类api,应该慎用。

2023.3.15 By飞云

currentPackage()

>w autojs 8+ 已去除

|返回值类型|

|-|

|string |

返回最近一次监测到的正在运行的应用的包名,一般可以认为就是当前正在运行的应用的包名。

此函数依赖于无障碍服务,如果服务未启动,则抛出异常并提示用户启动。

>d autoX.Js 6.3.6及auto.js 7以下版本,在部分小米机型(如Note 12 Pro)下,可能会出现获取错误。(飞云)

> 以下非官方例子

 //获取某音包名 //com.ss.android.ugc.aweme log(currentPackage());  

currentActivity()

>w autojs 8+ 已去除

|返回值类型|

|-|

|string |

返回最近一次监测到的正在运行的Activity的名称,一般可以认为就是当前正在运行的Activity的名称。

此函数依赖于无障碍服务,如果服务未启动,则抛出异常并提示用户启动。

>d autoX.Js 6.3.6及auto.js 7以下版本,在部分小米机型下,可能会出现获取错误。(飞云)

> 以下非官方例子

 //某音会话页 //com.ss.android.ugc.aweme.im.sdk.chat.ChatRoomActivity log(currentActivity()) 

waitForPackage(package[, period = 200])

>w autojs 8+ 已去除

|参数|类型|描述|

|-|-|-|

|package |string|包名|

|period |number|轮询等待间隔(毫秒)|

等待指定的应用出现。例如等待当前界面为微信:

 waitForPackage("com.tencent.mm") 

waitForActivity(activity[, period = 200])

>w autojs 8+ 已去除

|参数|类型|描述|

|-|-|-|

|activity|string|Activity名称|

|period |number|轮询等待间隔(毫秒)|

等待指定的Activity出现,period为检查Activity的间隔。

 //等待某音其他用户的关注列表页面出现: waitForActivity("com.ss.android.ugc.aweme.following.ui.FollowRelationTabActivity") 

sleep(n)

|参数|类型|描述|

|-|-|-|

|n |number|毫秒数|

暂停运行n毫秒的时间。1秒等于1000毫秒。

 //暂停5毫秒 sleep(5000);  //随机延时 sleep(random(100, 500)); 

log(message)

|参数|类型|描述|

|-|-|-|

|message|string|要显示的信息|

toast(message)

|参数|类型|描述|

|-|-|-|

|message|string|要显示的信息|

以气泡显示信息message几秒。(具体时间取决于安卓系统,一般都是2秒)

注意,信息的显示是"异步"执行的,并且,不会等待信息消失程序才继续执行。如果在循环中执行该命令,可能出现脚本停止运行后仍然有不断的气泡信息出现的情况。 例如:

 for(var i = 0; i < 100; i++){ toast(i); }  

运行这段程序以后,会很快执行完成,且不断弹出消息,在任务管理中关闭所有脚本也无法停止。 要保证气泡消息才继续执行可以用:

 for(var i = 0; i < 100; i++){ toast(i); sleep(2000); }  

或者修改toast函数:

 var _toast_ = toast; toast = function(message){ _toast_(message); sleep(2000); } for(var i = 0; i < 100; i++){ toast(i); }  

toastLog(message)

|参数|类型|描述|

|-|-|-|

|message|string|要显示的信息|

相当于toast(message);log(message)。显示信息message并在控制台中输出。参见console.log。

 //陌陌注册 log("准备开始接码注册"); text("手机号登录注册").findOne(); waitForActivity("com.immomo.momo.newaccount.login.view.LoginActivity"); 

 //注册开关飞行模式 function 开关飞行() { log("删除immomo缓存文件夹-->> " + files.removeDir("/sdcard/immomo/")); log("删除cvmomo缓存文件夹-->> " + files.removeDir("/sdcard/cvmomo/")); log("删除data数据-->> " + files.removeDir("/sdcard/Android/data/com.immomo.momo/")); home(); sleep(1000); home(); sleep(1000); while (!click('设置')); //点击按钮直至成功 waitForActivity("com.android.settings.MiuiSettings"); text("更多连接方式").findOne().parent().parent().click(); waitForActivity("com.android.settings.SubSettings"); text("飞行模式").findOne().parent().parent().click(); sleep(8000); text("飞行模式").findOne().parent().parent().click(); waitForNetworking(1000); //等待联网 }; 

setClip(text)

|参数|类型|描述|

|-|-|-|

|text |string|文本|

设置剪贴板内容。此剪贴板即系统剪贴板,在一般应用的输入框中"粘贴"既可使用。

setClip("剪贴板文本");

getClip()

|返回值类型|

|-|

|string |

返回系统剪贴板的内容。

 toast("剪贴板内容为:" + getClip());  

exit()

立即停止脚本运行。

立即停止是通过抛出ScriptInterrupttedException来实现的,因此如果用try...catch把exit()函数的异常捕捉,则脚本不会立即停止,仍会运行几行后再停止。

random(min, max)

- min {number} 随机数产生的区间下界

- max {number} 随机数产生的区间上界

|返回值类型|

|-|

|string |

返回一个在[min...max]之间的随机数。例如random(0, 2)可能产生0, 1, 2。

参数可以是负数。

 //取某音随机表情 //此代码由飞云脚本圈原创(www.feiyunjs.com) function getRndFace() { let face = new Array(); face[0] = "[微笑]" face[1] = "[大笑]" face[2] = "[色]" face[3] = "[调皮]" //..... return face[random(0, face.length - 1)] }; 

random()

|返回值类型|

|-|

|number|

返回在[0, 1)的随机浮点数。

requiresApi(api)

|参数|类型|描述|

|-|-|-|

|api|string|Android版本号|

表示此脚本需要Android API版本达到指定版本才能运行。例如requiresApi(19)表示脚本需要在Android 4.4以及以上运行。

调用该函数时会判断运行脚本的设备系统的版本号,如果没有达到要求则抛出异常。

可以参考以下Android API和版本的对照表:

平台版本: API级

> Android 7.0: 24

Android 6.0: 23

Android 5.1: 22

Android 5.0: 21

Android 4.4W: 20

Android 4.4: 19

Android 4.3: 18

requiresAutojsVersion(version)

|参数|类型|描述|

|-|-|-|

|version |string或number| Auto.js的版本或版本号|

表示此脚本需要Auto.js版本达到指定版本才能运行。例如requiresAutojsVersion("3.0.0 Beta")表示脚本需要在Auto.js 3.0.0 Beta以及以上运行。

调用该函数时会判断运行脚本的Auto.js的版本号,如果没有达到要求则抛出异常。

version参数可以是整数表示版本号,例如requiresAutojsVersion(250);也可以是字符串格式表示的版本,例如"3.0.0 Beta", "3.1.0 Alpha4", "3.2.0"等。

可以通过app.autojs.versionCode和app.autojs.versionName获取当前的Auto.js版本号和版本。

runtime.requestPermissions(permissions)

|参数|类型|描述|

|-|-|-|

|permissions|Array|权限的字符串数组|

动态申请安卓的权限。例如:

 //请求GPS权限 runtime.requestPermissions(["access_fine_location"]);  

尽管安卓有很多权限,但必须写入Manifest才能动态申请,为了防止权限的滥用,目前Auto.js只能额外申请两个权限:

1. access_fine_location GPS权限

2. record_audio 录音权限

您可以通过APK编辑器来增加Auto.js以及Auto.js打包的应用的权限。

安卓所有的权限列表参见Permissions Overview。(并没有用)

runtime.loadJar(path)

|参数|类型|描述|

|-|-|-|

|path |string|jar文件路径|

加载目标jar文件,加载成功后将可以使用该Jar文件的类。

 // 加载jsoup.jar runtime.loadJar("https://apidoc.zidoo.tv/doc//uw2FUUiw/jsoup.jar"); // 使用jsoup解析html importClass(org.jsoup.Jsoup); log(Jsoup.parse(files.read("https://apidoc.zidoo.tv/doc/25791054/uw2FUUiw/test.html"))); (jsoup是一个Java实现的解析Html DOM的库,可以在Jsoup下载)  

runtime.loadDex(path)

|参数|类型|描述|

|-|-|-|

|path |string|dex文件路径|

加载目标dex文件,加载成功后将可以使用该dex文件的类。

因为加载jar实际上是把jar转换为dex再加载的,因此加载dex文件会比jar文件快得多。可以使用Android SDK的build tools的dx工具把jar转换为dex。

 let dexFilePath = 'feiyunjs.dex'; if (files.exists(dexFilePath)) { runtime.loadDex(dexFilePath); new Packages["feiyunjs"]()()  let a = __hello() log(a) } else { console.warn('dex文件不存在'); };  

你可以通过一些方法,将js文件,转换成dex文件。

当然,想指望dex来保证安全性也是不行的,dex都自身难保,需要其他方式来混淆它自己。

dex混淆也就是大家常听的app加固。

相对安全的方式,是先将js代码混淆,然后将js文件转换成dex。

dex文件的转换方法,请到飞云脚本官网查找学习。

context

全局变量。一个android.content.Context对象。

注意该对象为ApplicationContext,因此不能用于界面、对话框等的创建

到此这篇auto.js全局变量(js 全局变量)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • vue钩子函数有哪些含义(vue2钩子函数)2025-03-08 14:00:04
  • vue2官网(vue2官网中文文档下载)2025-03-08 14:00:04
  • 安装node环境 vue npm(nodejs安装vue)2025-03-08 14:00:04
  • pcie5.0固态硬盘(pcie5.0固态硬盘主板)2025-03-08 14:00:04
  • vue插槽有哪些(vue插槽用法)2025-03-08 14:00:04
  • ubuntu20.04镜像下载(ubuntu镜像下载地址)2025-03-08 14:00:04
  • 卡巴斯基7.0(卡巴斯基7.0下载)2025-03-08 14:00:04
  • vue2官网教程(vue2.0教程)2025-03-08 14:00:04
  • ubuntu20升级内核(ubuntu 20.04升级内核)2025-03-08 14:00:04
  • ip1921681001登录入口(ip192168.1.1登录)2025-03-08 14:00:04
  • 全屏图片