[英]Is possible to simulate touch event using an external keyboard on ios jailbroken?
是否可以在ios越獄和越獄涉及的所有元素上按下財政外部鍵盤(通過相機連接套件或藍牙的USB)上的特定鍵在特定屏幕的坐標中模擬觸摸事件?
我會用它用我的腳按下應用程序中的按鈕(幅度),我想將鍵盤用作腳踏開關。
僅供私人使用。 沒有 Appstore 或 Cydia。 謝謝。
您可以在計算機上編寫腳本,並使用鍵盤和鼠標基於模擬觸摸庫來控制您的 iOS 設備。
iOS13-SimulateTouch是一個開源庫,可以讓你在系統層面模擬觸摸事件。 您可以使用任何編程語言編寫腳本來遠程或本地模擬 iOS 設備上的觸摸事件。 請查看[Github] iOS13-SimulateTouch 中的源代碼
iOS 11.0 - 13.6 系統級觸控模擬 iOS13 模擬觸控
需要越獄設備
該庫使您能夠僅用一行代碼在 iOS 11.0 - 13.6 上模擬觸摸事件! 所有源代碼將在稍后發布。
Python Version
import socket
import time
# event types
TOUCH_UP = 0
TOUCH_DOWN = 1
TOUCH_MOVE = 2
SET_SCREEN_SIZE = 9
# you can copy and paste this method to your code
def formatSocketData(type, index, x, y):
return '{}{:02d}{:05d}{:05d}'.format(type, index, int(x*10), int(y*10))
s = socket.socket()
s.connect(("127.0.0.1", 6000)) # connect to the tweak. Replace "127.0.0.1" with the ip address of your device
s.send(("1"+formatSocketData(SET_SCREEN_SIZE, 0, 2048, 2732)).encode()) # tell the tweak that the screen size is 2048x2732 (your screen size might differ). This should be send to the tweak every time you kill the SpringBoard (just send once)
time.sleep(1) # sleep for 1 sec to get setting size process finished
s.send(("1"+formatSocketData(TOUCH_DOWN, 7, 300, 400)).encode()) # tell the tweak to touch 300x400 on the screen
# IMPORTANT: NOTE the "1" at the head of the data. This indicates the event count and CANNOT BE IGNORED.
s.close()
實際上觸摸僅由一行執行:
s.send(("1"+formatSocketData(TOUCH_DOWN, 7, 300, 400)).encode())
整潔而輕松。
執行觸摸移動
s.send(("1"+formatSocketData(TOUCH_MOVE, 7, 800, 400)).encode()) # tell the tweak to move our finger "7" to (800, 400)
進行潤色
s.send(("1"+formatSocketData(TOUCH_UP, 7, 800, 400)).encode()) # tell the tweak to touch up our finger "7" at (800, 400)
結合它們
s.send(("1"+formatSocketData(TOUCH_DOWN, 7, 300, 400)).encode())
time.sleep(1)
s.send(("1"+formatSocketData(TOUCH_MOVE, 7, 800, 400)).encode())
time.sleep(1)
s.send(("1"+formatSocketData(TOUCH_UP, 7, 800, 400)).encode())
首先手指觸摸(300, 400),然后移動到(800, 400),然后“離開”屏幕。 所有觸摸事件均無延遲地執行。
數據字段應始終為十進制數字,如下所述
注意:將來可能會更新用法。 我會更新這篇文章,但請在 github 上的Usage_iOS13-SimulateTouch上跟蹤
Event Count
(1 位):指定單個事件的計數。 如果您有多個事件要同時發送,只需增加事件計數並將事件附加到數據中即可。
Type
(1 位):指定單個事件的類型。
支持的事件類型:
Touch Index
(2 位數字):Apple 支持多點觸控,因此您必須在發布觸摸事件時指定手指索引。 手指索引的范圍是 1-20(0 是保留的,不要使用 0 作為手指索引)。
x Coordinate
(5 位):要觸摸的地方的 x 坐標。 前 4 位為整數部分,最后一位為小數部分。 例如,如果您想在屏幕上觸摸(123.4, 2432.1),您應該為此填寫“01234”。
y Coordinate
(5 位):要觸摸的地方的 y 坐標。 前 4 位為整數部分,最后一位為小數部分。 例如,如果您想在屏幕上觸摸(123.4, 2432.1),您應該為此填寫“24321”。
因此,如果您想用手指“3”在屏幕上觸摸(123.4、1032.1),只需使用套接字連接到調整並發送“11030123410321”。
數字 0:“1”表示只有一個事件要執行。
數字 1:“1”表示事件類型:TOUCH_DOWN(標志為 1)。
數字 2-3:“03”表示此事件由手指“3”執行。
數字 4-8:“01234”表示 x 坐標 123.4。
數字 9-13:“10321”表示 y 坐標 1032.1。
觸摸坐標不取決於設備的方向。 請參閱下圖以獲取更多信息。 無論您如何放置設備,屏幕上的點擊點都不會改變。
該網站提供了有關如何使用私有API模擬觸摸的清晰,最新指南。 既然您已經說過,這不是為了分發,那應該正是您要尋找的。
在越獄的設備上,我相信有BTStack庫可以攔截藍牙鍵盤事件,該庫可以與下面的鏈接中的代碼鏈接。
http://www.cocoawithlove.com/2008/10/synthesizing-touch-event-on-iphone.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.