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

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

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

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

更新没有信息/文件是不够的,我已经解决了。 我想要一个有权威的人(苹果员工或Erica Sadun的某个人)的论坛/博客文章,说这是不可能的,或者如果可能的话,我想要解决scheme。 像“要求用户更改设置”这样的解决方法也不够好。

我想添加一些东西,因为我已经打开了一个TSI,不知何故,我问了这个问题,并得到了答复。 从奎因“爱斯基摩!”:

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

我有一个闹钟应用程序,我也需要这个function。 在iOS5下,如果用户在closures时使用其他应用,则会出现横幅。 因此,我花了很多时间浏览解决scheme。

但是,不可能控制由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

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

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

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

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

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

用户的偏好<=你不能强迫用户(的偏好)。 期。 这种deviseselect显然是苹果之路(应用程序的游乐场是有限的,以确保最佳的用户体验)

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

不,你不能select你的通知显示样式,这是用户的select

只是在开玩笑…无论如何,一个解决方法可能是提供一种方式在你的应用程序 – 提示/教程 – 推动用户改变自己的警报风格…

祝你好运 !

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

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

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

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

你有没有尝试过

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

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