当控制中心像QuizUp一样打开时,iOS会收到通知
iOS Control Center打开时如何通知我 UIApplicationWillResignActiveNotification不够好,因为在打开通知中心、出现警报视图和其他可能的情况下也会发送此通知 我确信这是不可能的,但是当用户在游戏过程中打开控制中心时,QuizUp应用程序会收到通知,以防止作弊当控制中心像QuizUp一样打开时,iOS会收到通知,ios,objective-c,control-center,Ios,Objective C,Control Center,iOS Control Center打开时如何通知我 UIApplicationWillResignActiveNotification不够好,因为在打开通知中心、出现警报视图和其他可能的情况下也会发送此通知 我确信这是不可能的,但是当用户在游戏过程中打开控制中心时,QuizUp应用程序会收到通知,以防止作弊 感谢我测试了一种UIPangestureRecognitizer方法(如果出现的是“小拉动”选项卡而不是“控制中心”,则状态栏会发生可见的变化),同时观察应用程序是否会重新激活通知,我无法
感谢我测试了一种
UIPangestureRecognitizer
方法(如果出现的是“小拉动”选项卡而不是“控制中心”,则状态栏会发生可见的变化),同时观察应用程序是否会重新激活
通知,我无法可靠地知道控制中心是否已打开。如果平移速度足够慢,手势识别器将首先触发,但肯定很容易快速向上滑动,触发control center并完全绕过手势识别器触发
尝试检查应用程序是否从applicationWillResignActive
进入applicationdibecomeactive
将是一种非常可靠的方法,可以知道应用程序是否进入和退出两种状态之一(控制中心、通知中心、接听电话等),但是用这种方式来区分通知中心和控制中心是不可能的
TL;DR:我认为没有可靠或准确的方法来判断控制中心是否已打开,但QuizUp可能正在做一些有趣的事情来伪造它,我很容易出错 嘿,我做了很多尝试和错误调查,并提出了一个非常可靠的解决方案。它可以在所有方向上工作,并且可以在全屏(无状态栏)和常规模式下工作。AAWindow是UIWindow的一个子类,您可以在上找到它
我实现这一点的方法是覆盖UIWindow中的
sendEvent
,将TouchEvents与其他事件分开,并检查触摸是否发生在屏幕底部的10%(这是可以打开Control Center的部分)。如果有触摸,并且在0.5秒(带状态栏)或3秒(不带状态栏)的时间跨度内调用了applicationWillResignActive
,您可以非常确定这是因为Control Center正在打开。然后会触发NSNotification,您可以在应用程序中的任何位置对此做出反应。当Control Center打开时,循环未完成。仅表示方法
将调用ApplicationIDResignActivity
,但不会调用ApplicationIdentinterBackground
。当应用程序最小化时,将调用这两种方法。在这里你可以区分