精华内容
下载资源
问答
  • Auto.js的微信朋友圈点赞

    千次阅读 2020-04-18 23:13:39
    Auto.js的微信朋友圈点赞 1.介绍 本文主要是针对Auto.js的新手用户,作为初学者的第一课,微信朋友圈点赞通常是新手入门教学最好的一课。微信界面抓取代码全面,调试稳定,学习如何操作微信界面可以很好的入手其它...

    Auto.js的微信朋友圈点赞

    1.介绍
    本文主要是针对Auto.js的新手用户,作为初学者的第一课,微信朋友圈点赞通常是新手入门教学最好的一课。微信界面抓取代码全面,调试稳定,学习如何操作微信界面可以很好的入手其它软件。通常我们使用Auto.js进行自动化操作时,需要通过代码来模拟手机的点击、滑动功能。微信点赞可以较好地解释这些基础代码。
    2.代码介绍
    在微信实现点击的操作,我们需要两步,1)找到控件的位置;2)执行点击操作
    对于控件位置,有两种方法,1)通过控件特征抓取控件;2)识别像素坐标
    这里结合Auto.js,使用对控件的识别(常用的特征:text、desc、id)
    在这里插入图片描述
    例如点击朋友圈text("朋友圈").findOne().parent().click()
    text为识别内容,findOne为找寻text属性为朋友圈的控件,由于开发人员在开发这个控件时clickable设置为false,即不可点击,所以加上parent(),找寻它的父控件,执行点击操作click()。
    这里关于find、click有一些总结:
    findOne():对于包含多个相同特征的控件,只返回第一个控件
    findOnce():只搜索一次
    find():返回当前页面所有的具备相同特征的控件
    untilFind():直到找完包含该特征的控件,不停止搜索

    click():单击控件,默认时间为150ms
    press():单机控件,可设置点击时间,也可以设置坐标形式为press(x,y)

    掌握了基本的搜索控件、执行点击、滑动屏幕scrollForward():的操作,我们就可以练习操作手机的脚本了

    app.launchApp("微信")//启动微信app
    sleep(1000)//等待反应时间
    text("发现").findOne().parent().click()//点击发现
    sleep(1000)
    text("朋友圈").findOne().parent().click()//点击朋友圈
    sleep(1000)
    

    启动手机的微信,这里的sleep()可以根据你手机的反应速度设置,反应慢就设置时间久一些,可以视情况删去。下面我们编写一下所要用到的函数,屏幕滑动、尝试点赞和多个控件点击三个函数,方便我们逐个解决问题,并运用到循环中。

    function scroll(){
        className("ListView").scrollForward();
      }//listView为Auto.js抓取的主体框的className
    

    很简单明了,就是设置滑动屏幕的函数

    function tryFav(btn){
        btn.click();
        sleep(1000);
        if(!click("赞")){
            btn.click();
        }
    }
    

    点赞的函数编写的时候碰上了难题,刚开始是简单的想着找到父控件-点击-点赞就可以了,但实际上页面滚动时会遇上点过赞的朋友圈,这里程序就会卡住,加入if(!click(“赞”))进行一个判别

    function dianzan() {
        sleep(1000)
        var asm=desc("评论").find();
        if(!asm.empty()){
            asm.forEach(item => {
                tryFav(item);
                sleep(1000);
                }) 
            }
    }
    

    有必要解释一下这里的asm.forEach(),我们知道asm返回的是当前页面desc为评论的所有控件,我们需要逐一对其进行操作,forEach()函数就是一个很方便的循环函数,对asm的每一个控件执行操作

    编写完所需要的函数后,可以进行逐一的调试,例如直接在命令行最后一行加上 dianzan();,调试没问题后将函数用while循环组装,即可完成脚本的编写。

    while(true){
    dianzan();
    scroll();
    }
    
    展开全文
  • 模拟朋友圈实时点赞及评论功能点赞思路:点击的时候,使用push(点赞)以及slice(取消赞)方法处理数组,并且调用点赞接口评论思路:点击的时候,写多一个评论列表,当点击发送的时候commentStatus=true,且索引等于...

    模拟朋友圈实时点赞及评论功能

    点赞思路:点击的时候,使用push(点赞)以及slice(取消赞)方法处理数组,并且调用点赞接口

    评论思路:点击的时候,写多一个评论列表,当点击发送的时候commentStatus=true,且索引等于点击的索引。同时调用获取评论列表的接口

    html

    {{item.timetype}}

    {{love.name}},

    {{comment.nickname}}: {{comment.content}}

    {{realtimename}}: {{realtimecontent}}

    // 点赞

    like(index,communityId) {

    if (this.community[index].islove == 0) {

    this.community[index].islove = 1;

    this.community[index].lovelist.push(

    {name:this.userinfo.nickname,vipid:this.userinfo.id}

    )

    this.likeImport(communityId)

    } else {

    this.community[index].islove = 0;

    this.community[index].lovelist.splice(this.community[index].lovelist.indexOf(this.userinfo.nickname), 1)

    this.likeImport(communityId)

    }

    },

    // 点赞接口

    likeImport(id) {

    app.vipidRequest({

    url: 'Vip/community_love',

    data: {

    id: id

    },

    header: {

    'content-type': 'application/x-www-form-urlencoded',

    },

    method: 'POST',

    success:(res) => {

    if(res.data.status) {

    } else {

    console.log(res.data)

    }

    }

    })

    },

    // 点击评论

    comment(index,communityId) {

    this.showInput = true; //调起input框

    this.focus = true; // 对焦

    this.communityId = communityId

    },

    // 点击发送

    send_comment: function(message) {

    this.commentStatus = true

    this.commentIndex = index

    this.realtimecontent = message.content

    this.realtimename = this.userinfo.nickname

    app.vipidRequest({

    url: 'Vip/community_on',

    data: {

    id: this.communityId,

    content: message.content,

    type: 1

    },

    header: {

    'content-type': 'application/x-www-form-urlencoded',

    },

    method: 'POST',

    success:(res) => {

    if(res.data.status) {

    this.getCommunity() // 整个页面数据刷新

    this.init_input()

    this.commentStatus = false // 临时渲染评论的列表隐藏

    this.realtimecontent = ''

    this.realtimename = ''

    this.input_placeholder = '评论';

    } else {

    console.log(res.data)

    }

    }

    })

    }

    // 取消评论/评论完成输入框状态值

    init_input() {

    this.showInput = false;

    this.focus = false;

    this.input_placeholder = '评论';

    this.is_reply = false;

    },

    展开全文
  • Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。 与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找...

    说明

    本文提供的代码仅供参考。不建议用于生产环境。
    可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。

    Auto.js简介

    Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
    与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。

    Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。

    推荐教程

    Auto.js Pro安卓全分辨率免ROOT引流脚本开发视频教程(HD超清1080p)

    开发文档

    Auto.js Pro开发文档
    文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。

    为什么要使用Auto.js Pro开发脚本,有什么特点?

    吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:

    • Auto.js Pro能开发免ROOT的安卓脚本
    • Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型
    • Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面
    • Auto.js Pro使用的javascript的语法比较优雅,代码可读性强
    • Auto.js Pro的命令库非常的丰富,接口比较多
    • Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告

    免责声明

    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途。

    示例代码

    // 此代码由飞云脚本圈www.feiyunjs.com整理提供
    "auto";
    
    //下滑
    function scroll(){
      className("ListView").scrollForward();
    }
    
    //尝试点赞
    function tryFav(btn){
      btn.click();
      sleep(300);
      if(!click("赞")){
        btn.click();
      }
    }
    
    while(true){
        var c = className("ImageView").desc("评论").untilFind();
        c.each(function(btn){
            tryFav(btn);
        });
        scroll();
    }
    
    
    展开全文
  • 本文 主要讲 大概的实现,思路。有不同想法的可以私信我。...自己模拟的后台传送数据 commandArraylist:[ { userUrl:'/assets/logo/jiatui-logo.jpg', articleUrl:'/assets/images/simple.jpg', usern...

    本文 主要讲 大概的实现,思路。有不同想法的可以私信我。

    首先的话是准备工作

    布局

     

    自己模拟的后台传送数据

    commandArraylist:[
          {
            userUrl:'/assets/logo/jiatui-logo.jpg',
            articleUrl:'/assets/images/simple.jpg',
            username:'心动云',
            userpression:'公司',
            articleTitle:'2019,深圳开荒牛的TO B拓荒路',
            data:'昨天',
            praiseFlag:false,
            lovePointUser:'稻草人,玩笑而,加推你好啊,万众杀戮空间,是街坊邻居',
            commandUserList:[
              {
                name:'zero',
                text:'厉害'
              },
              {
                name: '华仔',
                text: '不错'
              },
              {
                name: '方知',
                text: 'hello'
              },
              {
                name: '吴氏生飞 地产老猫',
                text: '好产品'
              },
            ]
          },
          {
            userUrl: '/assets/logo/jiatui-logo.jpg',
            articleUrl: '/assets/images/simple.jpg',
            username: '加推科技',
            userpression: '公司',
            articleTitle: '2019,深圳开荒牛的TO B拓荒路',
            data: '昨天',
            praiseFlag: false,
            lovePointUser: '稻草人,玩笑而,加推你好啊,万众杀戮空间,是街坊邻居',
            commandUserList: [
              {
                name: 'zero',
                text: '厉害'
              },
              {
                name: '华仔',
                text: '不错'
              },
              {
                name: '方知',
                text: 'hello'
              },
              {
                name: '吴氏生飞 地产老猫',
                text: '好产品'
              },
            ]
          },
          {
            userUrl: '/assets/logo/jiatui-logo.jpg',
            articleUrl: '/assets/images/simple.jpg',
            username: '加推科技',
            userpression: '公司',
            articleTitle: '2019,深圳开荒牛的TO B拓荒路',
            data: '昨天',
            praiseFlag: false,
            lovePointUser: '稻草人,玩笑而,加推你好啊,万众杀戮空间,是街坊邻居',
            commandUserList: [
              {
                name: 'zero',
                text: '厉害'
              },
              {
                name: '华仔',
                text: '不错'
              },
              {
                name: '方知',
                text: 'hello'
              },
              {
                name: '吴氏生飞 地产老猫',
                text: '好产品'
              },
            ]
          },
        ]

    还有就是在 每个评论上面加一个自定义数据,我是data-current=index,来标识每个不同的动态分享,不然一点赞,就所有动态都点赞了,就不好了。在data里面定义一个commandTab,接收这个自定义值,留着后面大用

    第一:我们先做评论和点赞框带动画的显示事件commandClick(点完显示赞,和评论的那个横框框,名字取得 随意吧。。)

    first:获取这一条动态的唯一标识符,就是前面说的dataset的数据,然后,吧值赋给commandTab,就能做到指定显示,

            <view class="list-command-btn" wx:if='{{commandTab == index}}' animation="    {{animationData}}">   
                //这里的 commandTab == index 控制指定的评论和点赞区的显示 
              <view class="btn-command" bindtap="praiseThumbsClick" >
                <image src="/assets/logo/love.png"></image>
                <text hidden="{{item.praiseFlag}}">赞</text>
                <text hidden="{{!item.praiseFlag}}">取消</text>
              </view>
              <text>|</text>
              <view class="btn-command" bindtap="inputCommandClick">
                <image src="/assets/logo/consultation.png"></image>
                <text>评论</text>
              </view>
            </view>

    second:

    在 这个 过程中加上动画,第一次点击显示,再点隐藏,再点显示,再点隐藏。

    我的思路呢就是,data加一个commandHiddenFlag 标识框框的显示 还是隐藏,

    我的主要想法,给commandTab初始值99,点击的时候,判断commandTab和current是否相等,当然是不相等 我们commandTab初始值设的是99

    如果不相等:commandHiddenFlag 的值变成false,评论区由隐藏——>显示,做一个出现的动画,吧current赋值给  commandTab,标识我们现在评论区已经显示了,

    如果相等:current==commandTab说明是刚才点击过了,评论区由显示—>隐藏,做一个慢慢退厂的动画,

    关键点:每个退厂之后,都要把commandTab重新赋值为99(设一个定时器200毫秒),表示一次结束,不然current==commandTab就一直相等了,就没有出现动画了

    然后,我们再来做点赞功能,

    点赞就比较简单了,根据刚才的commandTab找到 指定动态,在json数组里面的位置,吧里面的赞标识符praiseFlag改成false就行了.

    评论功能

    评论我自己做的比较乱,主要问题就是,点击评论的时候,我获取不到在父元素点赞评论区域 上设置的的data-set

    为什么评论会出现这个问题?点赞不会出现,

    因为:评论的时候,输入框弹出来,点赞评论区域已经隐藏了,那么commandTab变成99,等我输入完评论以后,就找不到当前动态的标识符了,找不到就不能修改json 数组里面的数据,而点赞的时候,commandTab还没有变成99,设一个定时器200毫秒。

    点击右边的评论按钮,点赞评论区显示——>点赞(评论)按钮——>点赞评论区隐藏

    卡点:父元素上设置的dataset,在子元素上面获取不到,

    迁就解决办法,再来一个变量,在前面的父元素的操作中,就是点赞评论区展开动画的时候,保留下来获取到的父元素的dataset

     

    评论的那个弹框,我的处理是,input先fixed隐藏在最下面,点了评论以后显示,同时focus

    adjust-position Boolean true 键盘弹起时,是否自动上推页面
    cursor-spacing Number / String 0 指定光标与键盘的距离,单位px(2.4.0起支持rpx)。取 input 距离底部的距离和 cursor-spacing 指定的距离的最小值作为光标与键盘的距离

    一个是 吧底部的input推上来的效果,推上来会被盖住,一部分,用cursor-spacing调一下距离,

    展开全文
  • 仿微信实现的朋友圈模拟与后台交互实现了点赞、评论、删除等功能,listview可以根据键盘的显示或隐藏实现联动。与后台交互采用mvp模式.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行...
  • 本篇文章主要介绍了Vue.js实现模拟微信朋友圈开发demo,实现展示朋友圈,评论,点赞等功能,有兴趣的可以了解一下。
  • Vue.js模拟微信朋友圈开发demo

    千次阅读 2017-02-14 09:32:59
    我用Vue.js实现微信朋友圈的一些功能,实现展示朋友圈,评论,点赞。  先构造一个vue的实例,对会更改的数据进行双向绑定,  我用JSON伪造模版数据,先实现显示朋友圈的效果,使用v-for方法去循环ALLFeeds中的每...
  • Vue.js模拟微信朋友圈开发实录

    千次阅读 2016-08-14 22:37:08
    我用Vue.js实现微信朋友圈的一些功能,实现展示朋友圈,评论,点赞。 先构造一个vue的实例,对会更改的数据进行双向绑定, 我用JSON伪造模版数据,先实现显示朋友圈的效果,使用v-for方法去循环ALLFeeds中的每一项...
  • 模拟朋友圈实时点赞及评论功能 点赞思路:点击的时候,使用push(点赞)以及slice(取消赞)方法处理数组,并且调用点赞接口 评论思路:点击的时候,写多一个评论列表,当点击发送的时候commentStatus=true,且...
  • 仿微信实现的朋友圈模拟与后台交互实现了点赞、评论、删除等功能,listview可以根据键盘的显示或隐藏实现联动。与后台交互采用mvp模式。 图片显示规则类似微信朋友圈的排列 后注 在原项目的基础上简单的修改一下...
  • 1.吹风湿篇最近学Rxjava2,但...确定想法以后,就开始写代码,但我又不想造轮子写界面,所以在github 看到一个仿朋友圈的demo,仿微信实现的朋友圈模拟与后台交互实现了点赞、评论、删除等功能,RecyclerView可以根
  • BOOS 黑老板 是一款xposed 插件,用来方便使用微信的各种功能,实现各种自动化,提高生产力。  + 自动切换帐号 + 模拟定位 + 添加,导出附近的人 ...+ 自动发朋友圈点赞  + 搜索添加好友,QQ号,
  • 30行代码实现蚂蚁森林自动偷能量

    万次阅读 多人点赞 2021-02-07 08:33:42
    之前通过用代码模拟手机点按的方式,实现了朋友圈自动点赞,但当时蚂蚁森林的操作流程要比朋友圈点赞复杂很多,所以当时就没有实现自动偷能量。不过我那篇博客评论下面有网友推荐了appium和uiautomator2这俩工具,...
  • 之前通过用代码模拟手机点按的方式,实现了朋友圈自动点赞,但当时蚂蚁森林的操作流程要比朋友圈点赞复杂很多,所以当时就没有实现自动偷能量。 不过我那篇博客评论下面有网友推荐了appium和uiautomator2这俩工具,...
  • 微信朋友圈点赞,要求按照点赞数据显示点赞好友信息。 取消点赞怎样操作? 解决方案: 移除指定操作 lrem key count value 可以移除指定的value值,并且可以指定删几个。 应用场景 redis中的list可以用来操作有...
  • 前言 本文的文字及图片来源于网络,仅供学习...之前通过用代码模拟手机点按的方式,实现了 朋友圈自动点赞,但当时蚂蚁森林的操作流程要比朋友圈点赞复杂很多,所以当时就没有实现自动偷能量。不过我那篇博客评论下面有
  • CircleDemo

    2015-12-31 14:58:50
    仿微信实现的朋友圈模拟与后台交互实现了点赞、评论、删除等功能,listview可以根据键盘的显示或隐藏实现联动。与后台交互采用mvp模式。
  • 软件主要提供GPS位置模拟、微信附近打招呼、批量发好友消息、批量加好友、朋友圈点赞等多项功能。用户使用软件可以实现位置模拟给”不同地域“的附近的人打招呼,发送任何想要传达的信息、自动给通讯录的每个好友...
  • 基于Vue20模仿微信APP

    2019-08-12 02:25:32
    基于Vue Vuex Vue-router Webpack 2.0 打造微信界面,实现了微信聊天、搜索、点赞、通讯录(快速导航)、个人中心、模拟对话、朋友圈、设置等功能。
  • 奥博微信营销专家是一款针对微信进行营销的精准推广软件,营销范围覆盖...其核心功能包括:高精度模拟定位,搜索附近的人,批量添加好友,发送微信消息,发送朋友圈,批量点赞,批量评论等功能。 奥博微信营销专家截图
  • 其核心功能包括:高精度模拟定位,搜索附近的人,批量添加好友,发送微信消息,发送朋友圈,批量点赞,批量评论等功能。 奥博微信营销专家功能 1、自动向附近的人打招呼; 2、自动添加群成员为好友:微信最快捷...
  • 基于Vue + Vuex + Vue-router + Webpack 2.0打造微信界面,实现了微信聊天、搜索、点赞、通讯录(快速导航)、个人中心、模拟对话、朋友圈、设置等功能。 二、项目预览 (请在chrome手机模式下打开) 点击这里预览...
  • 基于Vue + Vuex + Vue-路由器+ Webpack 2.0打造微信界面,实现了微信聊天,搜索,点赞,通讯录(快速导航),个人中心,模拟对话,朋友圈,设置等功能。 技术栈 MVVM框架:Vue.js 2.0 状态管理:Vuex 移动端组件库...
  • 基于Vue + Vuex + Vue-router + Webpack 2.0打造微信界面,实现了微信聊天、搜索、点赞、通讯录(快速导航)、个人中心、模拟对话、朋友圈、设置等功能。 二、项目预览 (请在chrome手机模式下打开) 点击这里预览...
  • 前几天发了一个朋友圈,发现暗恋已久的女生给我点了个赞,于是我当晚辗转反侧、彻夜未眠!想着妹子是不是对我有感觉呢?不然怎么会突然给我点赞呢?要不趁机表个白? 于是第二天我在心中模拟了多次表白的话语,连...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

朋友圈点赞模拟