在 iOS 中如何在后台运行状态下获取全局触摸事件通知?

Posted

技术标签:

【中文标题】在 iOS 中如何在后台运行状态下获取全局触摸事件通知?【英文标题】:In iOS how to get Global touch event notification in background running state? 【发布时间】:2013-05-03 11:15:21 【问题描述】:

我正在寻找一种方法来在我的应用程序处于后台运行状态时获得有关任何用户发起的触摸事件的通知,我想明确表示我不想处理手势事件或破坏 UIResponder 链,某种形式的通知用户在屏幕上某处发起触摸?

【问题讨论】:

不可能。想想用户是否有密码。您可以记录他们在键盘上敲击手指的位置或其他任何地方。 ios 不允许这样做。 是的,那会非常令人不安的用户体验,我只想知道他是不是在触摸屏幕而不是在哪里或什么地方? @Abhinav Singh:你有解决方案吗?我需要使用任何私有 API 的类似东西。我也不必将其提交到 App Store。因此,如果您找到任何解决方案,请分享。 @Rachit:如果您愿意使用私有 API 和越狱,mobileSubtrate 库允许您将进程挂接到操作系统,从而在触摸事件发送到操作系统本身之前获取通知.挂钩也是在 Windows 中检测全局鼠标事件的标准方法。 @Hrishikesh_Pardeshi :我对私有 API 持开放态度,因为这是一个企业应用程序,而不是 Jailbeaking。我也可以将 mobileSubtrate 库与非越狱设备一起使用吗?你也可以看看我发布的这个问题:***.com/questions/18530395/… 【参考方案1】:

使用标准 SDK 根本不可能做到这一点。您将能够记录用户在其他应用程序中点击的位置,并记录他们在键盘上输入的内容。这是不允许的。只有发送到您的应用的触摸才能被拦截和处理。

【讨论】:

感谢您的关注,是的,我知道,我不想知道用户在哪里触摸,我只想知道用户是否在触摸屏幕?【参考方案2】:

不允许。如果一个应用程序在后台,它只允许做一些特定的操作:-

播放音乐 随时通知他们的位置 互联网协议 (VoIP) 来自外部附件的更新

必须阅读以下 Apple 链接中的“App States and Multitasking”部分

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

“它一定会给你强大的基础”

【讨论】:

看我现在不是真的在寻找应用商店提交,更多的代码实验,是的,谢谢你提到这些。 Always...# 代码实验只有通过 Apple Docs 才能更成功。很棒的资源!

以上是关于在 iOS 中如何在后台运行状态下获取全局触摸事件通知?的主要内容,如果未能解决你的问题,请参考以下文章

允许后台进程时无法在 iOS 中获取 Force Quit 事件,怎么办?

如何在 iOS 后台模式下获取信标广告数据

如何向 iPhone OS 发送触摸事件? [复制]

SwiftUI 中如何获取任意视图触摸位置(全局或局部)的坐标

SwiftUI 中如何获取任意视图触摸位置(全局或局部)的坐标

SwiftUI 中如何获取任意视图触摸位置(全局或局部)的坐标