通知横幅样式 iOS

Posted

技术标签:

【中文标题】通知横幅样式 iOS【英文标题】:Notification banner style iOS 【发布时间】:2018-12-09 21:49:00 【问题描述】:

我知道有类似的问题。我还看到this 一个。很好的答案,但我想澄清两个细节。

    是否有任何方法可以检查代码中用户为您的应用“临时”或“持久”使用哪种通知的横幅样式?

    当 iPhone 被锁定并且用户收到来自提醒的通知,然后解锁 iPhone 并再次锁定它时,通知仍会显示在锁定的屏幕上。如果我们对另一个具有“持久”横幅样式的应用程序执行相同操作,则当 iPhone 再次锁定时,通知将不会出现。那么,我们如何才能实现类似于 Apple 的提醒应用程序中的通知横幅行为呢?

【问题讨论】:

【参考方案1】:

有什么方法可以检查代码中用户使用哪种通知的横幅样式用于您的应用“临时”或“持久”

当然。致电 UNUserNotificationCenter getNotificationSettings。结果是一个 UNNotificationSettings,它的alertStyle.banner [临时] 或.alert [持久](当然是.none)。

当 iPhone 被锁定并且用户收到来自提醒的通知,然后解锁 iPhone 并再次锁定它时,通知仍会出现在锁定的屏幕上。如果我们对另一个具有“持久”横幅样式的应用程序执行相同操作,则当 iPhone 再次锁定时,通知将不会出现。

我认为锁定屏幕中的行为与“持久”设置无关。我认为对于允许锁定屏幕通知的任何应用程序,如果您所做的只是打开屏幕(从黑色到锁定屏幕)并查看它,然后再次关闭屏幕,如果有可见的通知,它将下次你做同样的事情时可以看到。

【讨论】:

哇,马特...谢谢你的回答!第一个问题很清楚,谢谢!第二个......我的意思不是“打开屏幕(从黑色到锁定屏幕)”,而是使用 biometricId 解锁手机然后锁定它。关键点是提醒通知在用户阅读或关闭之前始终可见,当时解锁/锁定 iPhone 后的其他通知移动到“旧通知”,即使他们还没有阅读。会不会是苹果工程师的特权行为?或者我们能达到同样的效果吗?还是无法控制? 或者,如果您知道,能否请您告诉我,本地或远程通知以及本机 Apple 应用程序和其他应用程序是否有优先级? 我认为您正在查看的是警报 (EKAlarm),而不是本地通知。 “调用UNUserNotificationCenter getNotificationSettings”,请举例。

以上是关于通知横幅样式 iOS的主要内容,如果未能解决你的问题,请参考以下文章

应用程序运行时,iOS 推送通知显示为 UIAlert

IOS获取本地通知的属性

iOS 推送通知横幅未出现

为啥在 iOS 7 中我的本地通知没有显示横幅

iOS推送通知横幅清除操作按钮[重复]

创建持久的 iOS 横幅通知 [关闭]