首页 文章

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

提问于
浏览
37

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

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

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

Update :缺乏信息/文件还不足以让我解决这个问题 . 我想要一个像权威人士的论坛/博客文章(Apple员工或Erica Sadun的某些人)说这是不可能的,或者如果有可能那么我想要解决方案 . 像"ask the user to change the setting"这样的解决方法也不够好 .

6 回答

  • 16

    你可能不会在这里找到同行的“权威”,你最好直接问苹果;这个问题已在他们的论坛上多次被问到,而且没有回答......

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

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

    最后一句话是我发现的唯一'权威暗示' .

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

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

    NO YOU CAN'T CHOOSE YOUR NOTIFICATIONS DISPLAY STYLE, IT'S THE USER'S CHOICE

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

    祝好运 !

  • 4

    你有没有尝试过

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

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

  • 0

    我想补充一些东西,因为我已经开了一个TSI,不知怎的,我问过这个并且已经回答了 . 来自奎因“爱斯基摩人!”:

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

  • 11

    我有一个警报应用程序,我也需要此功能 . 在iOS5下,如果用户在其关闭时使用其他应用程序,则会显示 Banner . 因此,我花了很多时间浏览解决方案 .

    但是,我无法控制由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

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

  • 20

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

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

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

相关问题