触动精灵论坛

查看: 838|回复: 37

[工具插件] 分享一个iOS读取应用界面布局的插件

[复制链接]
发表于 2018-9-9 00:08:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转触动精灵。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 快递小哥 于 2018-9-28 21:14 编辑

论坛之前有一个利用luajit写的读界面布局的插件,但是用起来比较麻烦,而且生成的格式不是标准格式,现在特地分享我一直在用的scr.so
特点:直接生成json格式,读取方便            有相对坐标,识别控件方便
使用方法:下载附件scr.so 放在plugin目录下面   然后执行示例代码就可以了,读取出来的json存在应用数据目录/Documents/recursiveDescription.txt里面
注意 :
运行的时候需要目标应用处于前台
第一次运行为安装,第二次运行才能对应用生效,所以请杀掉应用重新运行
兼容iOS11
--截取部分json     absoluteFrame字段为当前控件相对于屏幕的位置
[HTML] 纯文本查看 复制代码
{
                        "subviews":[

                        ],
                        "absoluteFrame":{
                            "y":0,
                            "x":0,
                            "width":414,
                            "height":736
                        },
                        "description":"<QQView: 0x145a7aec0; frame = (0 0; 414 736); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x145a7ae10>>",
                        "bounds":{
                            "y":0,
                            "x":0,
                            "width":414,
                            "height":736
                        }
                    },

      
[PHP] 纯文本查看 复制代码
--示例代码  自行提换bid
file = {
exist = (function(file) local sFlie,Err = io.open(file,"r+");if Err~=nil then return false end sFlie:close();return true end),
read = (function(file) local sFlie,Err = io.open(file,"r");if Err~=nil then return nil end local _tmp = sFlie:read("*all");sFlie:close();return _tmp end),
delete = (function(file) os.remove(file) end)

}

local scrTool = require("scr")
function getScreenXml(bid)
    isfront = isFrontApp(bid);
    if isfront == 0 then
        return false,"请先打开"..bid.."界面,再运行该脚本!"
    end
    filePath = appDataPath(bid).."/Documents/recursiveDescription.txt";
    if file.exist(filePath) == true then
        file.delete(filePath)
    end
    scrTool.getSrcJson(bid)

    mSleep(400)
    if file.exist(filePath) == true then
        local screenStr = file.read(filePath)
        file.delete(filePath)
        return true,screenStr
    else
        return false,"屏幕打印失败,检查插件的完整性"
    end
end

local status,screenStr = getScreenXml("com.xxxxxxx")
if status == true then
    dialog(screenStr)
else
    dialog("error:"..screenStr)
end




游客,如果您要查看本帖隐藏内容请回复




回复

使用道具 举报

发表于 2018-9-9 13:41:13 | 显示全部楼层
厉害了 看一下
回复 支持 反对

使用道具 举报

发表于 2018-9-10 01:34:27 | 显示全部楼层
分享一个iOS读取应用界面布局的插件
回复 支持 反对

使用道具 举报

发表于 2018-9-11 02:49:39 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

发表于 2018-9-12 11:56:27 | 显示全部楼层
厉害了老铁!
回复 支持 反对

使用道具 举报

发表于 2018-9-12 15:21:16 | 显示全部楼层
厉害了 看一下
回复 支持 反对

使用道具 举报

发表于 2018-9-13 11:38:19 | 显示全部楼层
新人报告,学习学习
回复 支持 反对

使用道具 举报

发表于 2018-9-13 13:55:36 | 显示全部楼层
应用界面布局的
回复 支持 反对

使用道具 举报

发表于 2018-9-13 21:55:53 | 显示全部楼层
感谢分享  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

帖子推荐上一条 /3 下一条

小黑屋|手机版|Archiver|触动精灵 ( 京ICP备15002081号-2

GMT+8, 2018-10-18 17:30 , Processed in 0.107748 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表