为应用程序设置默认的iOS本地通知样式
从iOS 5开始,有两种通知样式:横幅和提醒(“旧”样式)。 用户可以在设置中为每个应用程序设置使用哪种样式。 但是,现在默认情况下,通知显示横幅样式。
我正在使用本地通知来提醒即将发生的事件。 横幅在它出现后不久就消失了(而且不太明显,可以点击它),所以对于这些通知,希望将警报样式通知留在屏幕上,直到用户决定一个动作(忽略或去到应用程序)。
有没有办法通过代码或例如Info.plist
条目告诉iOS应该默认使用警报样式通知(只要用户还没有configuration其他的东西)?
更新 : 没有信息/文件是不够的,我已经解决了。 我想要一个有权威的人(苹果员工或Erica Sadun的某个人)的论坛/博客文章,说这是不可能的,或者如果可能的话,我想要解决scheme。 像“要求用户更改设置”这样的解决方法也不够好。
我想添加一些东西,因为我已经打开了一个TSI,不知何故,我问了这个问题,并得到了答复。 从奎因“爱斯基摩!”:
“这取决于你的意思,你可以根据你如何设置UILocalNotification属性(比如alertBody,soundName等等)来控制通知的显示方式,但是如果你问的是这些属性被解释(用户可以在设置>通知中自定义的东西),那些是用户首选项,并且不通过任何API公开。“
我有一个闹钟应用程序,我也需要这个function。 在iOS5下,如果用户在closures时使用其他应用,则会出现横幅。 因此,我花了很多时间浏览解决scheme。
但是,不可能控制由UILocalNotification生成的警报样式我害怕:(
您可以从课程参考中看到,没有为此提供条款:
或者在plist中:
最好的办法是告诉用户如何改变设置。
你可能不会在这里find你的同行的“权威”,你最好直接问苹果; 这个问题已经在他们的论坛上被问了好几次了,没有回答…
支持本地或推送通知的iOS应用程序可以以各种方式参与通知中心,具体取决于用户的偏好。“
最后一句话是我发现的唯一的“权威暗示”。
用户的偏好<=你不能强迫用户(的偏好)。 期。 这种deviseselect显然是苹果之路(应用程序的游乐场是有限的,以确保最佳的用户体验)
至于更多的权威…也许喊?
不,你不能select你的通知显示样式,这是用户的select
只是在开玩笑…无论如何,一个解决方法可能是提供一种方式在你的应用程序 – 提示/教程 – 推动用户改变自己的警报风格…
祝你好运 !
显然你不喜欢听不到答案,但是,不。
您可以使用此行查询通知样式的当前设置:
UIRemoteNotificationType* enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
您可以检查enabledTypes
,然后指示用户更改设置中的通知样式。
你有没有尝试过
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
在你的didFinishLaunching方法中,这将不会帮助那些更新,但应该为那些第一次安装启用警报