• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 在 iOS 6 上发送全局触摸事件

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:55:09 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我想构建一个自动 iOS 应用测试框架。我可以通过 IOHIDFamily 记录触摸事件,那么有什么方法可以重播呢?

我试过这样的 GSEvent

void sendclickevent(){     
    mach_port_t thePortOfApp = GSCopyPurpleNamedPort("com.fuckyou.fuck");     

    GSEventRecord header;     
    GSHandInfo click;     
    GSPathInfo pathInfo = {2,2,2,1,1,{50,50}, NULL};     

    bzero(&header, sizeof(header));     
    bzero(&click, sizeof(click));     

    header.type = kGSEventHand;     
    header.subtype = kGSEventSubTypeUnknown;     
    header.location.x = 50;     
    header.location.y = 50;     
    header.windowLocation.x = 50;     
    header.windowLocation.y = 50;     
    header.infoSize = sizeof(GSHandInfo)+sizeof(GSPathInfo);     
    header.timestamp = mach_absolute_time();     

    click.type = kGSHandInfoTypeTouchDown;     
    click.deltaX = 1;     
    click.deltaY = 1;     
    click.pathInfosCount = 1;     

    struct    
    {     
        GSEventRecord record;     
        GSHandInfo hand;     
        GSPathInfo path;     
    } record = {header, click, pathInfo};     

    GSSendEvent(&record, thePortOfApp);     
}

thePortOfApp 返回非零值。但是在这个功能结束时,比如按下一个按钮,什么都没有发生。那么有什么问题吗?或者我需要另一种方式将触摸事件发送到 iOS UI?



Best Answer-推荐答案


查看与在应用外发送事件相关的其他一些问题:

Use GSEvent to send touch event,but it's invalid

Using GraphicsServices.h/GSEvent as well as compiling CLI iPhone tools with Xcode

How to send a touch event to iPhone OS?

Simulating System Wide Touch Events on iOS

备注

1) 我认为您应该先发送 touchDown 然后再发送 touchUp 以获得点击。

2) 我在这个主题上看到的大部分代码都使用了 GSGetPurpleSystemAppPort(),它允许发送系统范围的事件(与 GSCopyPurpleNamedPort 相比)。

我相信 GSCopyPurpleNamedPort 只是做通常的 bootstrap_look_up 端口。所以,它会找到一个端口,即使它不是紫色端口(对于“com.fuckyou.fuck”来说很可能是这样)

关于ios - 在 iOS 6 上发送全局触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15701155/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap