“用户对显示的通知和样式(横幅、警报等)具有最终控制权。没有任何机制可以覆盖用户偏好。”
即使我想做的只是从警报样式“降级”为横幅样式……很好。但是我至少可以在 didActivateNotification 方法中找出通知是警报还是横幅样式?
当警报是横幅(这是我想要的)时,单击其内容是唯一可能的操作,这都会触发具有 notification.activationType 值的 didActivateNotification 方法NSUserNotificationActivationTypeContentsClicked
并关闭通知横幅。我希望我的应用通过打开 Internet URL 来响应此操作。
当用户选择alert风格的通知时,点击alert的内容也会生成didActivateNotification,其值相同notification.activationType
,但它停留在屏幕上而不是消失(它只在按下Action按钮时消失,并且notification.activationType有不同的那么值)。我不希望我的应用程序为同一个警报通知重复触发操作,以防用户单击警报通知的内容区域。
另一种解决方案是在用户单击其内容时强制警报通知气泡消失。这可能吗?