从iOS 5开始,有两种通知样式:横幅和警报(“旧”样式)。用户可以在设置中设置要为每个应用程序使用的样式。但是,现在默认情况下,通知显示为横幅样式。
我正在使用本地通知来提醒“现在”发生的事件。一个横幅在它出现后不久就消失了(并且它不够明显,人们可以点击它),所以对于这些通知,希望将警报样式通知保留在屏幕上直到用户决定一个动作(忽略或去到app)。
有没有办法通过代码或例如Info.plist
条目告诉iOS默认情况下应该使用警报样式通知(只要用户没有配置别的东西)?
更新:信息/文档的缺席不足以让我解决这个问题。我想要一个像权威人士的论坛/博客文章(Apple员工或Erica Sadun的人)说这是不可能的,或者如果有可能那么我想要解决方案。像“要求用户更改设置”这样的解决方法也不够好。
答案 0 :(得分:20)
我想补充一些东西,因为我已经开了一个TSI,不知何故我问过这个并且已经回答了。来自Quinn“The Eskimo!”:
“这取决于你的意思。你可以根据你如何设置UILocalNotification属性(例如alertBody,soundName等等)来控制通知的显示方式。但是,如果你问的方式是哪些属性被解释(用户可以在设置>通知中自定义),这些是用户首选项,不通过任何API公开。“
答案 1 :(得分:16)
我有一个警报应用程序,我也需要此功能。在iOS5下,如果用户在其关闭时使用其他应用程序,则会显示横幅。因此,我花了很多时间浏览解决方案。
然而,我无法控制由UILocalNotification产生的警报风格:(
您可以从课程参考中看到没有任何条款:
或者在plist中:
最好的办法是告诉用户如何更改设置。
答案 2 :(得分:11)
你可能不会从同行那里找到'权威',你最好直接向Apple询问;这个问题已在他们的论坛上多次被问过,而没有回答......
“支持本地或推送通知的iOS应用可以参与 通知中心以各种方式,取决于用户的 偏好“。
最后一句话是我找到的唯一'权威提示'。
用户首选项< =您无法强制用户(首选项)。 期。 这种设计选择显然是Apple Way(应用程序的游乐场有限,以确保最佳的用户体验)
至于更多的权威......也许会喊叫?
你不能选择你的通知显示风格,这是用户的选择
开玩笑吧...... 无论如何,一个解决方法可能是在您的应用程序中提供一种方法 - 提示/教程 - 推动用户自己更改警报样式...... 祝你好运!答案 3 :(得分:4)
显然你不喜欢听不到答案,但是,没有。
答案 4 :(得分:0)
您可以使用此行查询通知样式的当前设置:
UIRemoteNotificationType* enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
您可以查看enabledTypes
,然后指示用户更改设置中的通知样式。
答案 5 :(得分:-2)
你试过吗
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
你的didFinishLaunching方法中的,这对那些更新没有帮助,但是应该为首次安装的人启用警报