Autojs实战:抖音自动化脚本

抖音自动化脚本开发实战

视频教程:http://cloud.189.cn/t/JBBnIbBvyI7r

访问码:

1、抖音自动化脚本开发简介


  • 开发框架:autojs 4.1.1
  • 手机型号:红米 note 8
  • 抖音版本:13.8.0

2、自动点赞功能开发


3、自动关注功能开发


4、自动评论功能开发


5、自动转发功能开发


6、自动浏览功能开发


7、封装随机滑动函数


8、封装随机点击函数


9、抖音Intent跳转


//抖音视频跳转
app.startActivity({
       action: "android.intent.action.VIEW",
       data: "snssdk1128://aweme/detail/" + 抖音ID,
       packageName: "com.ss.android.ugc.aweme",
});

//个人中心跳转
app.startActivity({
       action: "android.intent.action.VIEW",
       data: "snssdk1128://user/profile/" + 抖音ID,
       packageName: "com.ss.android.ugc.aweme",
});

10、抖音Intent跳转(2)


// 跳转直播间
app.startActivity({
    action: 'android.intent.action.VIEW',
    data: 'snssdk1128://live?room_id=' + room_id,
    packageName: 'com.ss.android.ugc.aweme'
});

// 跳转到搜索界面
app.startActivity({
    action: 'android.intent.action.VIEW',
    data: 'snssdk1128://search',
    packageName: 'com.ss.android.ugc.aweme'
});

// 跳转到个人中心界面
app.startActivity({
    action: 'android.intent.action.VIEW',
    data: 'snssdk1128://user/profile',
    packageName: 'com.ss.android.ugc.aweme'
});

11、升级抖音版本及脚本更新


  • 豌豆荚下载抖音最新版本
  • 脚本更新的注意事项

12、通过复制跳转到视频和直播间


// 设置剪切板
setClip(text);

注意事项:需要开启悬浮窗,如果不开启悬浮窗,需要返回脚本界面执行

13、获取分享文本中关键词


// 获取中间文本
function getStr(str, start, end) {
    let reg = start + "(.*?)" + end
    let res = str.match(new RegExp(reg));
    return res ? res[1] : null
}

// 获取网址
function getUrls(text) {
    var urlRegex = /(https?:\/\/[^\s]+)/g;
    return text.match(urlRegex);
}

14、通过链接获取ID


15、控制运行时间的功能


需求:运行某个功能一段时间后停止或切换功能

// 获取当前时间戳
var timestamp = parseInt((new Date()).getTime() / 1000);
// n 分钟后停止
var timeLimit = n * 60;
// 获取结束时的时间戳
var timeEnd = timestamp + timeLimit;
// 设置循环条件:获取到的时间戳 小于 结束的时间戳
while (parseInt((new Date()).getTime() / 1000) < timeEnd){
   	// 要执行的功能
    
}

16、防止跳出APP的最佳实践


原理:判断当前的Package和App的Package是否相同

// 获取根节点的对象
className("android.widget.FrameLayout").findOne();
// 获取当前app的Package
currentPackage()

=====================================

while(true){
    var rootNode = className("android.widget.FrameLayout").findOne();

    if(rootNode.packageName() == "com.ss.android.ugc.aweme"){
        log("在app内");
        sleep(1000);
    }else{
        log("不在app内");
        app.launchPackage("com.ss.android.ugc.aweme");
        sleep(3000);
    }
}

17、抖音首页控件查找慢如何解决


  • 原因:控件加载过多
// 获取全部控件,并遍历
packageName('com.ss.android.ugc.aweme').find().forEach(child => {
    if(child.text()){
        log(child.text())
        log(child.id())
    }
})

descStartsWith('未点赞,').findOnce()

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧