在 iOS7 之前,可以使用 GSSendSystemEvent
和 GSSendEvent
私有(private) API 调用来注入(inject)触摸事件,例如:
- GSSendEvent - Inject Touch Event iOS
- Simulating System Wide Touch Events on iOS
- System-wide tap simulation on iOS
- Send a global touch event on iOS 6
在 iOS7 上,这些调用似乎默默地失败了。 Simulating system-wide touches in iOS 7 中提出了替代方案。但它只适用于越狱设备。 https://github.com/kif-framework/KIF看起来像是另一种选择,但它似乎只支持为当前应用程序注入(inject)事件,而不是系统范围(例如,当您的应用程序在后台时,您无法注入(inject)触摸事件)。
那么如何在不越狱的情况下在 iOS7 上注入(inject)系统范围的触摸事件呢?
最佳答案
我假设您需要在整个系统范围内为测试场景执行此操作?在这种情况下,Apple 的 UI 自动化 框架可能会为您提供很好的服务,这是一种基于 JavaScript 的工具,可用于设备上的测试。
虽然您无法执行模拟主页按钮按下等操作,但您可以将应用发送到后台指定的持续时间,例如:
UIATarget.localTarget().deactivateAppForDuration(seconds);
这里是文档:
https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/UIAutomationRef
关于iphone - 在 iOS7 上注入(inject)系统范围的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19471572/