38

从 iOS 5 开始,有两种通知样式:横幅和警报(“旧”样式)。用户可以在设置中为每个应用程序设置使用哪种样式。但是,现在的默认设置似乎是通知以横幅样式显示。

我正在使用本地通知来提醒“现在”将发生的事件。横幅在它出现后不久就会消失(并且它不够明显以至于人们可以点击它),因此对于这些通知,最好有警报样式通知,因为这些通知会一直留在屏幕上,直到用户决定采取行动(忽略或去到应用程序)。

有没有办法通过代码或例如Info.plist条目告诉iOS默认情况下应该使用警报样式通知(只要用户没有配置其他东西)?

更新缺乏信息/文件不足以让我解决这个问题。我想要一个有权威的人(Apple 员工或类似 Erica Sadun 的人)发表的论坛/博客帖子之类的东西,说这是不可能的,或者如果有可能,那么我想要解决方案。像“要求用户更改设置”这样的解决方法也不够好。

4

6 回答 6

20

我想补充一点,因为我已经打开了一个 TSI,并且不知何故我问了这个问题并得到了回答。来自奎因“爱斯基摩人!”:

“这取决于您的意思。您可以根据设置 UILocalNotification 属性(如 alertBody、soundName 等)的方式来控制通知的显示方式。但是,如果您询问这些属性的方式被解释(用户可以在设置>通知中自定义的东西),这些是用户偏好,不会通过任何 API 公开。”

于 2012-02-04T01:03:24.850 回答
16

我有一个警报应用程序,我也需要这个功能。在 iOS5 下,如果用户在关闭时正在使用另一个应用程序,则会出现横幅。因此,我花了很多时间浏览解决方案。

但是,恐怕无法控制 UILocalNotification 生成的警报样式:(

您可以从类参考中看到没有任何规定:

http://developer.apple.com/library/IOs/#documentation/iPhone/Reference/UILocalNotification_Class/Reference/Reference.html

或在 plist 中:

http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

最好的办法是告诉用户如何更改设置。

于 2011-11-24T16:02:07.620 回答
11

你可能不会从你的同行那里找到“权威”,你最好直接问苹果;这个问题已经在他们的论坛上问过好几次了,都没有回答……

HIG 编程指南 - http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/TechnologyUsage/TechnologyUsage.html#//apple_ref/doc/uid/TP40006556-CH18-SW1 -

“支持本地或推送通知的 iOS 应用程序可以通过多种方式参与通知中心,具体取决于用户的偏好。”

最后一句话是我发现的唯一“权威提示”。

用户的偏好 <= 你不能强迫用户(的偏好)。时期。这种设计选择显然是 Apple 方式(应用程序的游乐场是有限的,以确保可能的最佳用户体验)

至于更多的权威……也许是大喊大叫?

不,您不能选择您的通知显示样式,这是用户的选择

开个玩笑......无论如何,一种解决方法可能是在您的应用程序中提供一种方法 - 提示/教程 - 推动用户自己更改警报样式......

祝你好运 !

于 2011-11-29T13:30:46.627 回答
4

显然,您不喜欢听到否定的答案,但是,不。

于 2011-11-28T18:55:09.900 回答
0

您可以使用此行查询通知样式的当前设置:

UIRemoteNotificationType* enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

您可以检查enabledTypes并指示用户在设置中更改通知样式。

于 2013-06-30T10:26:45.377 回答
-2

你有没有尝试过

[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

在您的 didFinishLaunching 方法中,这不会帮助那些更新,但应该为那些第一次安装的人启用警报

于 2011-11-30T22:43:38.277 回答