iphone - 如何在 iOS 中收到横幅通知?

标签 iphone ios objective-c notifications uikit

我正在编写一个 iOS 应用程序,我想在操作系统决定显示像这样的横幅通知时暂停我的应用程序的 Action 内容:

Banner Notification

是否有一个我可以观察的系统 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/

相关文章:

iphone - UIPageControl 和延迟出现

iphone - 将 NSArray 分成一组较小的 NSArray 以进行分页

ios - 使用NSDateFormatter将NSString解析为NSDate

ios - 在iPhone App中实现树状 View 结构

iphone - 在 iOS 上录制音频,并每分钟自动保存音频

ios - 检测 iOS8 可达性手势

ios - UITableViewCell 子类的内容重复

iphone - 是否可以在开发 iPhone 上查看存储在 Core Data 中的数据?

ios - 将数据存储到数据库而不是使用 Parse 的替代方法

iphone - iOS:覆盖 NSLocale 语言