最新公告
  • 欢迎您光临【搜客网】,本站秉承服务宗旨:销售只是起点,服务永无止境!立即加入我们
  • 免费激活码,「安卓按键」怎么让脚本可以领取免费测试卡

    大家好,我是公众号3分钟学堂的郭立员~

    前些天有朋友问怎么实现这个功能,如下图所示:

    这个功能就是给自己的脚本加上一个可以领免费测试卡的功能,要想实现它需要注意的内容挺多的,下面我们逐个来说一下:

    (1)功能上说要实现两个操作:点击按钮获取激活码(测试卡)+写入输入框

    ①点击按钮获取一个激活码

    因为脚本要给别人使用,所以激活码不能是本地的,只能是来自服务器端,那么可以使用post/get方式获取。

    激活码的来源,可以是预先生成好的一批激活码,也可以是每次点击按钮生成新的激活码,它们各有优缺点:

    预生成的激活码:生成的激活码数量是固定的,用一个少一个,所以要定期补充。

    新生成激活码:这种方式要求脚本具有生成激活码的权限,同时一旦被人破解可以无限制生成激活码,导致验证系统形同虚设了。

    选用哪种方式,除了考虑它们优缺点以外,还要看你的验证系统有没有相关的功能,比如新生成激活码的方式,就要求验证系统支持用户注册或者导入激活码。

    这期文章中我会用到读取服务器文本的方式,预先把激活码存在服务器文本,读取一个删除一个。

    ②把激活码写入到输入框中

    这边是需要静态页面修改元素的,使用UIP.SetAttribute命令,一行代码而已,稍后看源码就行。

    (2)脚本中的逻辑注意事项

    这个注意事项是来自于脚本的限制说明:※每天可免费领取3张测试卡,测试时间为1小时

    ①限制每天3张测试卡,那么需要有领取记录,记录可以存在脚本运行的本地设备,也可以存在于服务器端,两者对比的话,存在本地容易些。

    ②存储的要点:时间和张数

    因为是每天三张,所以过了半夜12点要重新更新可测试数量,记录好当天的日期,防止重复领取。

    ③限制1小时的测试时间,这个就是基本的网络验证,没啥可说的。

    (3)本地存储的操作流程

    选用的存储媒介是数据(.db),因为这种后缀的文件普通人不常用到,没有对应的工具不容易打开,这样就可以达到隐藏的效果。

    存储的格式如下:

    在数据库表中有两列数据,分别是time和num,代表日期和次数。

    写这部分逻辑框架需要考虑全面,大家跟着我一块去想想这个逻辑:

    第一步:判断数据库在手机/模拟器上是否存在

    不存在:当前设备是首次使用脚本

    存在:当前设备已经使用过

    第二步:针对上面两种情况分别处理

    首次使用:那么新建数据库,写入日期和次数1

    非首次使用:要判断当前表格里面的time列中有没有今天的日期数据。

    没有:今天还没有使用过

    有:今天已经使用。

    第三步:继续分情况处理

    没有今天的日期数据:在数据库中写入今天日期和次数1

    有今天的日期数据:读取数据库中当天日期对应的num列中的次数,判断次数是否小于3次

    小于3次:今天还可以继续使用,把今天日期对应的次数+1

    不小于3次:今天免费测试次数用完。

    这部分写成代码是:

    Import "sqlite3.lua"
        Dim dbpath="/sdcard/pictures/abc.db"
        Dim t=DateTime.Format("%Y%m%d")
        If Dir.Exist(dbpath) = 0 Then 
            showmessage "首次使用"
            sqlite3.SQLCreate(dbpath, "code", {"time","num"})
            sqlite3.SQLInsert DBpath, "code", {"time":t, "num":1}
        Else 
            dim ret=sqlite3.SQLSelect(DBpath, "code", "num", "WHERE time="&t)
            If Len(ret) = 0 Then 
                showmessage "今天首次使用"
                sqlite3.SQLInsert DBpath, "code", {"time":t, "num":1}
            Else 
                showmessage encode.TableToJson(ret)
                If cint(ret[1]["num"]) < 3 Then 
                    sqlite3.SQLUpdate DBpath, "code", {"num":ret[1]["num"]+1}, "WHERE time=" & t         
                    showmessage "第"&ret[1]["num"]+1&"次领卡"
                Else 
                    showmessage "今天3次测试卡已经领过了,明天再来"
                End If
            End If    
        End If

    在以上的代码中,并没有获取测试卡的操作,仅仅是对测试卡需要获取的记录,我们写每次写入/修改数据库内容都是要配合获取测试的操作。

    这其中包括建库、当天首次使用、次数小于3等这几种情况。

    (4)读取服务器上的文本

    这一步需要一个php文件,完成读取文本内容和删除文本内容的操作,把php文件和存有测试卡的文本放到服务器里面,运行下面代码就可以了。

    需要这个文件可以加我微信xiaomu86119,备注【服务器文本】

    Dim ip="http://192.168.1.3/file"   //我建了一个file的文件夹,不是一定有这个目录的
    Dim 文件名="code"  //文本名字
    TracePrint url.get(ip&"/File.php?uid=6&txtid="&文件名&"&hid=1")

    (5)写入输入框

    Function 函数名1()
        Dim 测试卡="abc0001"
        uip.SetAttribute("输入框1",{"初始文本":测试卡})
    End Function

    =正文完=

    【搜客网】_全网激活码总代_激活码商城【www.wxzygp.com】
    【搜客吧】_激活码商城_微商营销货源站 » 免费激活码,「安卓按键」怎么让脚本可以领取免费测试卡

    常见问题FAQ

    本站资源可以代理扶持吗?有没有售后和技术支持?
    具体请参照:https://www.wxzygp.com/345.html
    遇到问题无法解决怎么办?
    解决方案:https://www.wxzygp.com/343.html
    免费下载或者VIP会员资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    购买该资源后,可以退款吗?
    本站均属于虚拟商品,具有可复制性,可传播性。一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好是您所需要的资源!
    • 10404会员总数(位)
    • 32468资源总数(个)
    • 799本周发布(个)
    • 51 今日发布(个)
    • 1479稳定运行(天)

    【搜客网】_全网激活码总代_激活码商城

    立即查看 了解详情
    升级SVIP尊享更多特权立即升级