You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用iOS应用Pythonista模拟屏幕定点定时触摸操作?

在iOS实体机的Pythonista中实现定时模拟触摸

可以通过Pythonista内置的objc_util模块桥接iOS原生API,实现类似PyAutoGUI的触摸模拟功能,配合time模块就能达成每隔5秒触发一次的需求。以下是具体实现方案:

实现代码

import time
from objc_util import ObjCClass, CGPoint

# 加载iOS原生类
UIApplication = ObjCClass('UIApplication')
UITouch = ObjCClass('UITouch')
UIEvent = ObjCClass('UIEvent')

def simulate_touch(x: float, y: float):
    """模拟在屏幕(x, y)位置的一次完整触摸(按下+抬起)"""
    app = UIApplication.sharedApplication()
    key_window = app.keyWindow()
    
    # 构建触摸点(iOS屏幕原点为左上角)
    touch_point = CGPoint(x, y)
    
    # 模拟触摸按下
    touch = UITouch.alloc().initWithWindow_view_location_(key_window, key_window, touch_point)
    down_event = UIEvent.eventWithEventType_((1 << 0))
    key_window.sendEvent_(down_event)
    
    # 模拟触摸抬起
    touch.setPhase_(3)  # 3对应UITouchPhaseEnded
    up_event = UIEvent.eventWithEventType_((1 << 3))
    key_window.sendEvent_(up_event)
    
    touch.release()

# 循环定时触发触摸
if __name__ == '__main__':
    try:
        # 替换成你需要的目标屏幕坐标
        target_x, target_y = 200, 300
        while True:
            simulate_touch(target_x, target_y)
            print(f"已触发触摸:({target_x}, {target_y})")
            time.sleep(5)
    except KeyboardInterrupt:
        print("触摸模拟已终止")

关键说明

  • 坐标规则:iOS屏幕坐标原点在左上角,需根据实际需求调整target_x和target_y的数值
  • 运行限制:代码运行时Pythonista必须保持前台状态,后台下系统会限制触摸事件触发
  • 兼容性:方案依赖iOS原生API,系统版本更新后可能需微调代码,建议使用最新版Pythonista
  • 权限要求:无需额外系统权限,Pythonista自身沙箱权限已支持该操作

内容的提问来源于stack exchange,提问作者Louis Wheelz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:49:56