[触动精灵] 零基础小白学触动13-16

小知识:触动精灵载入其他lua文件

require 以前我一直以为require只能加载模块文件 但是其实可以加载普通的其他lua文件  用法还是不加扩展名

触动精灵加载文件 都用require就可

13 - 自动打开和关闭应用

小知识:触动下开启app和关闭app

查看对应app的包名

官方的runApp函数还可能存在无法启动app的情况 所以我就给封装了一下 万一出现无法启动 包名没有安装等情况 就日志记录 并且有弹窗提

下面代码  没有traceprint try catch 等函数本体

--运行app 一旦传入的包名不符合要求或者app根本没有安装 或者启动失败 会再次尝试 如果依然不行 则会报错 有提示窗口提示
function runAppEx(pid)
    local result=-1
    return try{
        function ()
            --下面代码随便写 有可能抛出异常即可
            pid=pid or ""
            pid=trim(pid)
            if pid=="" then
                error("runAppEx参数包名为空字符串 请检查")
            else

                result = runApp(pid);
                mSleep(2 * 1000);--官方推荐等待时间是2-3秒
                if result == 0 then
                    --closeApp("com.apple.weather");
                elseif result == 7 then
                    error("runAppEx找不到对应的包名 " .. tostring(pid) .. " 请检查")
                else
                    --再次尝试启动
                    result=-1
                    result = runApp(pid);
                    mSleep(2 * 1000);--官方推荐等待时间是2-3秒
                    if result == 0 then
                        --closeApp("com.apple.weather");
                    elseif result == 7 then
                        error("手机中没有安装对应的包名 " .. tostring(pid) .. " 请检查")
                    else
                        error("无法启动对应的包名 " .. tostring(pid) .. " 请检查")
                    end
                end
            end

        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("runAppEx") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end
        }
    }
end

习惯性的开启指定app的代码 点击home键的函数 下面有提到

--点击两下Home 以防万一 主要是回到手机桌面再执行启动app操作 可以避免一些意外
pid="com.android.settings"
for i=1,2 do
    keypressHome()
    mSleep(500)
end
runAppEx(pid)

关闭指定app

closeApp(pid)  --如果为了稳妥 可以回到桌面再关闭 或者关闭之后 再判断下 聊胜于无

--关闭app
function closeAppEx(pid)
    local result=-1
    return try{
        function ()
            --下面代码随便写 有可能抛出异常即可
            pid=pid or ""
            pid=trim(pid)
            if pid=="" then
                error("closeAppEx参数包名为空字符串 请检查")
            else
                --判断下当前app是否运行 是则关闭 不是则不操作
                if appIsRunning(pid)==1 then
                    closeApp(pid)
                end
            end

        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("closeAppEx") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end
        }
    }
end


小知识:关于触动下点击Home键的操作 要看当前系统和版本来进行对应的操作

http://www.touchsprite.com/helpdoc#/doc?id=71

config={}
--版本问题 触动版本和系统的版本 安卓还是IOS
config["tsver"]=tonumber(string.sub(getTSVer(), 1, 1)..string.sub(getTSVer(), 3,3)..string.sub(getTSVer(), 5,5))
config["sysver"]=tonumber(string.sub(getOSVer(), 1, 1)..string.sub(getOSVer(), 3,3)..string.sub(getOSVer(), 5, 5))
config["systype"]=getOSType()

----traceprint try catcha不写了

--点击一次home键
--支持 需要配置表的 config["systype"] config["sysver"]配合
function keypressHome()

    return try{
        function ()
            --下面代码随便写 有可能抛出异常即可
            if config["systype"]=="android" then
                pressHomeKey();
            else
                if config["sysver"]==700 then
                    pressHomeKey(0);    --按下抬起 Home 键一次
                elseif     config["sysver"]==600 then
                    pressHomeKey(0);    --按下 Home 键
                    pressHomeKey(1);    --抬起 Home 键
                elseif     config["sysver"]>=710 then
                    pressHomeKey(0);    --按下 Home 键
                    pressHomeKey(1);    --抬起 Home 键
                else
                    pressHomeKey(0);    --按下 Home 键
                    pressHomeKey(1);    --抬起 Home 键
                end
            end
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("keypressHome") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end
        }
    }
end

14 - 脚本信息提示

没什么说的

dialog 可以设置第二个参数来控制显示时间 如果为0 则一直显示

toast() 这个函数以前也说过 因为是异步传输 不是实时显示 每次使用这个函数后面必须跟2-3秒延时  保证显示

15 - 逐行读取输入文本

读写文件 TS库已经封装好了 不过我为了排错和用起来熟悉 就用熟悉的函数名封装了一下这些函数

http://www.touchsprite.com/helpdoc#/doc?id=495

function  fileExist(path)
    return try{
        function ()
            --下面代码随便写 有可能抛出异常即可
            local result1,result2
            if path=="" or path==nil then
                error("fileExist路径为空 请检查")
            else
                result1,result2=isFileExist(path)
                return result1,result2
            end

        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("fileExist") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end
        }
    }
end
--读取指定路径文件全部内容 成功返回内容 读取失败返回false 注意f是小写 因为readFile 是TS库的读取文件内容到表内
function  readfile(path)
    return try{
        function ()
            --下面代码随便写 有可能抛出异常即可
            local result
            if path=="" or path==nil then
                error("readfile路径为空 请检查")
            else
                result=readFileString(path)
                return result
            end
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("readfile") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end
        }
    }
end
--把表元素的作为文件的一行覆盖写入到文件里面
function  writetabletofile(path,temptable)
    return try{
        function ()
            --下面代码随便写 有可能抛出异常即可
            local result
            --temptable=temptable or {}
            if type(temptable)=="table" then
            else
                error("writetabletofile第二参数表不是表 请检查")
            end
            if path=="" or path==nil  then
                error("writetabletofile路径为空 请检查")
            else
                result=writeFile(path,temptable,"w") --将 table 内容存入文件,成功返回 true
                return result
            end
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("writetabletofile") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end
        }
    }
end

--读取指定路径文件全部内容到表中 成功返回表 读取失败返回false 不过要注意 返回值表只是传址
function  readReadLines(path)
    return try{
        function ()
            --下面代码随便写 有可能抛出异常即可
            local result
            if path=="" or path==nil  then
                error("readReadLines路径为空 请检查")
            else
                result=readFile(path)
                return result
            end
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("readReadLines") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end
        }
    }
end
--覆盖写入文件内容 失败的话返回false
function  writefile(path,str)
    return try{
        function ()
            --下面代码随便写 有可能抛出异常即可
            local result
            local file
            if  str=="" or str==nil then
                error("writefile第二参数为空 请检查")
            end
            if path=="" or path==nil  then
                error("writefile路径为空 请检查")
            else
                result=writeFileString(path,str,"w")
                return result
--                file = io.open(path, "w")--w模式下如果文件不存在会自动创建
--                if file then
--                    file:write(str)
--                    io.close(file)
--                    return
--                else
--                    return false
--                end
            end
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("writefile") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end
        }
    }
end

--追加写入文件内容
function  appendfile(path,str)

    return try{
        function ()
            --下面代码随便写 有可能抛出异常即可
            local result
            path=path or ""
            path=trim(path)
            if   str=="" or str==nil then
                error("appendfile第二参数为空 请检查")
            end
            if  path=="" or path==nil then
                error("appendfile路径为空字符串 请检查")
            else
                result=writeFileString(path,str,"a")
                return result
            end
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("appendfile") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end
        }
    }
end

原文地址:https://www.cnblogs.com/zjl8455482/p/11381350.html

时间: 2024-11-05 12:29:25

[触动精灵] 零基础小白学触动13-16的相关文章

[触动精灵]零基础小白学触动5-8

零基础小白学触动 - 05 - 触动常用函数 点击 滑动 原理 其实都可以分解成 按下=> 等待一定时间或者移动动作=>  松开 点击: tSLib库的函数tap(x,y) 后面还有2个参数 可以自己看手册  https://www.zybuluo.com/miniknife/note/293935#函数tap-点击 滑动  moveTo(x1,y1,x2,y2,step)   详细的   https://www.zybuluo.com/miniknife/note/293935#函数move

[触动精灵] 零基础小白学触动1-4

视频地址 http://www.iqiyi.com/playlist443635102.html 零基础小白学触动 - 01 - 说在前面的废话 小知识:Tslib库的定位 是官方为了解决小白不会封装自己的函数 提供了一些常见的封装功能 熟练后 我们可以自己封装自己的函数实现功能 可以不用载入这个库文件 小知识:手册非常强大 手册的搜索功能 和目录列表 ? 零基础小白学触动 - 02 - 注释和循环语句 没什么可说的 注释语句: -- --[[]]-- 流程语句 If 条件1 then Else

[触动精灵] 零基础小白学触动9-12

零基础小白学触动 - 09 - TSLib:点击和比色 没什么说的 tap(x,y,ms) 了解:TSLib库 注意以前库文件针对环境不同 库文件也是不同的  比如TSL ib库 对于基础版  专业版   帮你玩版  是不同的库文件 但是现在似乎整合了一部分 其他库文件也有这样的情况 使用的时候注意先看手册 看看当前环境下使用什么库文件 10 - 弹窗检测和无限点击 基础应用 11 - 如何滑动到界面底部 没什么说的 12 - TSLib 常用函数:便携 UI 细节查看http://www.to

零基础java培训靠谱吗?职场转行,零基础开始学Java开发靠谱吗?

学技术转行发展,是职场常见的提升方式,无论是在职充电还是为转行跳槽做准备,选择一个专业技能进行培训学习,都是非常可取的.在能力至上的今天,单凭学历已经不能成为入行敲门砖,特别是在互联网企业,通常在面试过程中就会考核技术能力,此外看你的项目作品,可见技术能力在招聘中是最具说服力的.华清远见教育职业规划专家表示零基础java培训靠谱吗,如果不清楚学什么技术更好,可以访问这里做职业规划,此外还可以通过试学来了解自己对技术课程的兴趣点. 华清远见教育开设的面向零基础人群提供的,从学习到就业一站式的浸入式

零基础小白,如何入门计算机视觉?

计算机视觉是人工智能技术的一个重要领域,打个比方(不一定恰当),我认为计算机视觉是人工智能时代的眼睛,可见其重要程度.计算机视觉其实是一个很宏大的概念,下图是有人总结的计算机视觉所需要的技能树. 如果你是一个对计算机视觉一无所知的小白,千万不要被这棵技能树吓到.没有哪个人能够同时掌握以上所有的技能,这棵树只是让你对计算机视觉有个粗浅的认识. 先来打点鸡血,看看计算机视觉有什么用吧.下面的视频是计算机视觉在自动驾驶上的实际应用,其中涉及立体视觉.光流估计.视觉里程计.三维物体检测与识别.三维物体跟

零基础小白入门Java免费视频教程推荐—小猿圈

Java语言作为世界上使用最多的开发语言,企业庞大的需求量让每年进入Java开发领域的人不减反增.对于零基础小白来讲如何学习Java开发语言是入门的第一个难题.本文小猿圈主要给零基础小白入门Java开发技术推荐一个靠谱的Java免费视频教程. 零基础小白入门Java免费视频教程推荐-小猿圈 关于Java基础入门视频教程的选择,网上有各种各样的解说,也有各式各样的视频教程,那么我们究竟应该如何选择Java免费视频教程呢?如何才能挑选到合适自己的Java基础入门视频教程呢? 许多想通过观看Java视

教你从零基础小白开始怎么学习C语言

想窥探神秘的代码世界?最好的入口无疑就是C语言. C语言是计算机体系结构的基础,向下可以操作硬件(包括ARM,DSP,单片机等各种微处理器),还可以写驱动,写OS,写编译器.向上可以进一步的学习C++,JAVA等面向对象语言,再学习一些图形用户界面框架,比如Qt,MFC,就可做出类似于计算器.QQ等Window桌面应用,再比如Android,就可以做出微信等Android应用,再比如Unity3D,就可以做出类似王者荣耀.刺激战场等手游.想想是不是就有点小激动呢!最后,如果大家如果在自学遇到困难

零基础小白转行学习前端的学习路线

零基础如何学web前端_从小白到大神进阶:下面给大家介绍一下学习路线:Web前端知识总的可以分为三个部分:初级知识,中级js,高级框架一,初级的主要内容:浏览器的概念介绍: 浏览器的作用.工作方式浏览器的概念介绍: 浏览器的作用.工作方式HTTP协议: 协议产生的原因.作用.及内容页面加载流程:当用户打开浏览器,输入地址栏并按下回车之后发生的事情HTML-CSS-JS基础-jQuery学习内容:HTML及HTML5:理解浏览器如何解析HTML.基本的语法规则.不同标签的使用方式.嵌套方式CSS:

免费领取16套深度学习权威实践课,从零基础小白到大牛

摘要:想学习人工智能却无从下手,听过两三遍网课还是不懂什么是卷积神经网络,好不容易啃完了视频却发现没源码没法调参跑代码,快来AI Studio课程!免费优质课程,系统化学习, 名师指导,提供真实开发案例,在线实训调参,提升学习效果,带你快速入行人工智能! 很多学习AI算法的人都很痛苦,尤其是希望进入大热的深度学习领域的你,是否遇到过以下囧境? 网上有大量的学习资料,质量参差不齐,且不知道知该从何学起: 听过两三遍网课,还是不懂什么是卷积神经网络: 好不容易啃完了视频却发现没源码,没法调参跑代码,