为应用程序设置默认的iOS本地通知样式

时间:2011-11-22 15:34:57

标签: ios ios5 uilocalnotification localnotification

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

我正在使用本地通知来提醒“现在”发生的事件。一个横幅在它出现后不久就消失了(并且它不够明显,人们可以点击它),所以对于这些通知,希望将警报样式通知保留在屏幕上直到用户决定一个动作(忽略或去到app)。

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

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

6 个答案:

答案 0 :(得分:20)

我想补充一些东西,因为我已经开了一个TSI,不知何故我问过这个并且已经回答了。来自Quinn“The Eskimo!”:

“这取决于你的意思。你可以根据你如何设置UILocalNotification属性(例如alertBody,soundName等等)来控制通知的显示方式。但是,如果你问的方式是哪些属性被解释(用户可以在设置>通知中自定义),这些是用户首选项,不通过任何API公开。“

答案 1 :(得分: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

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

答案 2 :(得分:11)

你可能不会从同行那里找到'权威',你最好直接向Apple询问;这个问题已在他们的论坛上多次被问过,而没有回答......

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

  

“支持本地或推送通知的iOS应用可以参与   通知中心以各种方式,取决于用户的   偏好“。

最后一句话是我找到的唯一'权威提示'。

用户首选项< =您无法强制用户(首选项)。 期。 这种设计选择显然是Apple Way(应用程序的游乐场有限,以确保最佳的用户体验)

至于更多的权威......也许会喊叫?

你不能选择你的通知显示风格,这是用户的选择

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

祝你好运!

答案 3 :(得分:4)

显然你不喜欢听不到答案,但是,没有。

答案 4 :(得分:0)

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

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

您可以查看enabledTypes,然后指示用户更改设置中的通知样式。

答案 5 :(得分:-2)

你试过吗

[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
你的didFinishLaunching方法中的

,这对那些更新没有帮助,但是应该为首次安装的人启用警报