我正在编写一个 iOS 应用程序,我想在操作系统决定显示像这样的横幅通知时暂停我的应用程序的 Action 内容:
是否有一个我可以观察的系统 NSNotification
或一个被调用的方法,我可以对其使用react?我试过applicationWillResignActive
,但在这种情况下没有调用。
最佳答案
我今天早上试了一下,我倾向于说没有公共(public) API。
我尝试使用概述的代码 here ,并且没有收到任何通知。然后,我进行了一系列“测试”,看看是否能找到任何东西。
为了测试,我创建了一对应用程序,one to schedule notifications (GitHub link) , 和 one to try and "catch" them (GitHub link) .在我的 Sender 应用程序中,我可以每 N 秒发送 N 条通知。我挑选了一些任意高的值(value)并发送了它们。
在我的捕手中,我尝试查看图层层次结构上下的 visibleRect 值。 (keyWindow 位于一个层中,但它是 superview,super layer.delegate 都是 nil)我没有检查约束,但这应该无关紧要。我查看了应用程序的窗口,它是 nil superview,它是层,它是 subview 。应用程序的边界也不受影响。该应用程序的沙盒化非常好,以至于在应用程序的世界中不存在跳板和通知中心。
我开始走上访问私有(private)框架的道路,但觉得不值得付出努力。
我打开了 Instruments 并查看了 View 的透明度级别。 (是否有可能强制层次结构中的所有 View 都是不透明的,然后用它来查看横幅是否阻挡了某些东西?如果它是透明的,也许它不是“阻挡”?)
我也尝试过截图,并检查屏幕顶部区域的颜色,但这行不通,因为您需要将 View 传递到上下文中。即使它能工作,也不会特别高效。
我的另一个想法是在推送端口上监听推送通知,但我怀疑 Apple 是否会允许您捕获另一个应用程序的通知。作为一名开发人员,我不会在警报中发送私有(private)信息,但这仍然是一个问题。
事实上,通知横幅并不会真正导致您的应用程序变为非事件状态,因此我不确定这种行为是否错误。如果方便,请提交错误。
请求 DeviceWillShowNotificationNotification
怎么样?
关于iphone - 如何在 iOS 中收到横幅通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18177970/