前言
在开发微博的任务脚本中,有个需求是直接打开任务中心。
常规的写法是先启动微博APP,再判断首页是否存在任务入口,然后进入任务中心。
// 进入用户任务中心/登录页面
function app_enterTaskCenter() {
if (!clickNode("id", "rlredpacketSave")) {
log("没找到任务中心,可能未登录")
clickNode("desc","我", random(myAPP.delayMin, myAPP.delayMax)) //进入个人中心
}
}
这种写法,需要处理APPA启动后的广告、弹窗等不确定的内容。拉长了脚本的开发周期。那么有没有简单粗暴的办法,直接打开任务中心呢?
下面跟着飞云一起来研究。
准备工作
安装好Visual Studio Code的电脑
安装好新浪微博的安卓手机
手机上安装并登录Auto.js Pro
教程
首先在手机上手动进入新浪微博的任务中心。
点击页面右上角的“…”,弹出分享卡片。点击“复制链接”。
通过QQ、微信等工具,将复制的链接,发送到电脑上。在电脑的浏览器里,打开这个链接。
点击“我要领取”,进入新的页面。
查看页面的html代码,页面的body部分内容如下:
已安装?点击此处打开微博
若没有安装微博,请先下载
去下载微博
其中有这样一段:
去下载微博
这个url里,存在scheme这个关键字。我们把scheme后面的地址提取出来。
sinaweibo%3A%2F%2Fbrowser%3Furl%3Dhttps%253A%252F%%252Fc%252Fcheckin%253Ffeaturecode%253Dfrom_sharingpage_to_mtask%2526luicode%253D20000061%2526lfid%253D180%26featurecode%3Dfrom_sharingpage_to_mtask%26luicode%3D20000061%26lfid%3D180&directdownload=0
这个地址需要进行编码转换,才可以在autojs中使用。
下面在百度搜索“编码转换”,打开一个在线转换工具。
URL编码/解码工具
选择“URL编码/解码”,将scheme地址,进行一次“UrlDecode解码”。可以看到开头部分的“%3A%2F%2F”已经被转换成了“://”
接下来使用auto.js的Intent(意图),来测试这个scheme地址。
auto.js提供了构建Intent的函数app.intent(), 启动Activity的函数app.startActivity(), 发送广播的函数app.sendBroadcast()。使用这些方法可以用来方便的调用其他应用。
Auto.js Pro开发文档
在连接好手机的Visual Studio Code中输入以下代码:
app.startActivity({
data:"sinaweibo://browser?url=https%3A%2F%%2Fc%2Fcheckin%3Ffeaturecode%3Dfrom_sharingpage_to_mtask%26luicode%3D20000061%26lfid%3D180&featurecode=from_sharingpage_to_mtask&luicode=20000061&lfid=180&directdownload=0"
});
按F5调试运行代码,可以看到手机上直接就进入了“用户任务中心”。大功告成。
相关教程