应用 - APP

# App app模块提供一系列函数,用于使用其他应用、与其他应用交互。例如发送意图、打开文件、发送邮件等。 同时提供了方便的进阶函数startActivity和sendBroadcast,用他们可完成app模块没有内置的和其他应用的交互。 ## launch(packageName) |参数|类型|描述| |-|-|-| |packageName |string|应用包名| **通过包名启动应用**。如果该包名对应的应用不存在,则返回false;否则返回true。 该函数也可以作为全局函数使用。 ```js //启动微信 launch("com.tencent.mm"); ``` ## launchApp(appName) |参数|类型|描述| |-|-|-| |appName |string|应用名称| **通过名称启动应用**。如果该名称对应的应用不存在,则返回false; 否则返回true。 如果该名称对应多个应用,则只启动其中某一个。 该函数也可以作为全局函数使用。 ```js launchApp("Auto.js"); ``` > 非官方例子 ```js //启动APP if (currentPackage() != "com.chaoxing.mobile") { toast("即将打开超星!"); //直接打开学习通 app.launchApp("学习通"); } else { toast("已经在学习通中,即将开始进行下一步操作!"); }; ``` ## launchPackage(packageName) |参数|类型|描述| |-|-|-| |packageName |string|应用包名| 相当于launch(packageName)。 > 非官方例子 ```js while (true) { if (currentPackage() != "com.chaoxing.mobile") { toast("即将打开超星!"); //直接打开学习通 app.launchPackage("com.chaoxing.mobile"); sleep(5000) } else { toast("已经在学习通中,即将开始进行下一步操作!"); break; }; }; ``` ## getPackageName(appName) |参数|类型|描述| |-|-|-| |appName |string|应用名称| **获取应用名称对应的已安装的应用的包名**。如果该找不到该应用,返回null; 如果该名称对应多个应用,则只返回其中某一个的包名。 该函数也可以作为全局函数使用。 ```js var name = getPackageName("QQ"); //返回"com.tencent.mobileqq" ``` ## getAppName(packageName) |参数|类型|描述| |-|-|-| |packageName |string|应用包名| **获取应用包名对应的已安装的应用的名称**。如果该找不到该应用,返回null。 该函数也可以作为全局函数使用。 ```js var name = getAppName("com.tencent.mobileqq"); //返回"QQ" ``` ## app.versionCode |返回值| |-|-|-| |number| **当前软件版本号**,整数值。例如160, 256等。 如果在Auto.js中运行则为Auto.js的版本号;在打包的软件中则为打包软件的版本号。 ```js toastLog(app.versionCode); ``` ## app.versionName |返回值| |-|-|-| |string| **当前软件的版本名称**,例如"3.0.0 Beta"。 如果在Auto.js中运行则为Auto.js的版本名称;在打包的软件中则为打包软件的版本名称。 ```js toastLog(app.verionName); ``` ## app.autojs.versionCode |返回值| |-|-|-| |number| Auto.js版本号,整数值。例如160, 256等。 ## app.autojs.versionName |返回值| |-|-|-| |string| Auto.js版本名称,例如"3.0.0 Beta"。 ## app.openAppSetting(packageName) |参数|类型|描述| |-|-|-| |packageName |string|应用包名| **打开应用的详情页(设置页)**。如果找不到该应用,返回false; 否则返回true。 该函数也可以作为全局函数使用。 ## app.viewFile(path) |参数|类型|描述| |-|-|-| |path|string|文件路径| **用其他应用查看文件**。文件不存在的情况由查看文件的应用处理。 如果找不出可以查看该文件的应用,则抛出ActivityNotException。 ``` //查看文本文件 app.viewFile("/sdcard/1.txt"); ``` ## app.editFile(path) |参数|类型|描述| |-|-|-| |path|string|文件路径| **用其他应用编辑文件**。文件不存在的情况由编辑文件的应用处理。 如果找不出可以编辑该文件的应用,则抛出ActivityNotException。 ```js //编辑文本文件 app.editFile("/sdcard/1.txt/); ``` ## app.uninstall(packageName) |参数|类型|描述| |-|-|-| |packageName |string|应用包名| **卸载应用**。 执行后会会弹出卸载应用的提示框。如果该包名的应用未安装,由应用卸载程序处理,可能弹出"未找到应用"的提示。 ```js //卸载QQ app.uninstall("com.tencent.mobileqq"); ``` ## app.openUrl(url) |参数|类型|描述| |-|-|-| |url |string|网站的Url,如果不以"http://"或"https://"开头则默认是"http://"| **用浏览器打开网站url**。 如果没有安装浏览器应用,则抛出ActivityNotException。 ```js //创建选项菜单(右上角) //此代码由飞云脚本圈原创(www.feiyunjs.com) ui.emitter.on("create_options_menu", menu => { menu.add("日志"); menu.add("官网"); menu.add("关于"); }); //监听选项菜单点击 ui.emitter.on("options_item_selected", (e, item) => { switch (item.getTitle()) { case "日志": app.startActivity('console'); break; case "官网": app.openUrl("http://www.feiyunjs.com"); break; case "关于": alert("飞云脚本圈", 'Copyright © feiyunjs.com\r\n大风起兮云飞扬,小雨落兮脚本忙'); break; } e.consumed = true; }); ``` ## app.sendEmail(options) |参数|类型|描述| |-|-|-| |options |Object|发送邮件的参数。包括:| - email {string} | {Array} 收件人的邮件地址。如果有多个收件人,则用字符串数组表示 - cc {string} | {Array} 抄送收件人的邮件地址。如果有多个抄送收件人,则用字符串数组表示 - bcc {string} | {Array} 密送收件人的邮件地址。如果有多个密送收件人,则用字符串数组表示 - subject {string} 邮件主题(标题) - text {string} 邮件正文 - attachment {string} 附件的路径。 **根据选项options调用邮箱应用发送邮件**。这些选项均是可选的。 如果没有安装邮箱应用,则抛出ActivityNotException。 ```js //发送邮件给10086@qq.com和10001@qq.com app.sendEmail({ email: ["10086@qq.com", "10001@qq.com"], subject: "这是一个邮件标题", text: "这是邮件正文" }); ``` ## app.startActivity(name) |参数|类型|描述| |-|-|-| |name |string|活动名称,可选的值为:| - console 日志界面 - settings 设置界面 启动Auto.js的特定界面。该函数在Auto.js内运行则会打开Auto.js内的界面,在打包应用中运行则会打开打包应用的相应界面。 ```js app.startActivity("console"); ```