Set default iOS local notification style for application

♀尐吖头ヾ 提交于 2019-11-26 08:16:51

问题


Starting with iOS 5, there are two notification styles: banner and alert (the \"old\" style). A user can set which style to use for each application in the settings. However, the default now seems to be that notifications are displayed banner style.

I\'m using local notifications for reminders about events that will happen \"now\". A banner disappears shortly after it appeared (and it\'s not obvious enough that one can tap it), so for these notifications it would be desirable to have the alert style notifications as those stay on screen until the user decided on an action (ignore or go to app).

Is there a way either through code or for example Info.plist entries to tell iOS that the alert style notifications should be used by default (as long as the user hasn\'t configured something else)?

Update: The absence of information/documentation is not enough for me to have this settled. I want either something like a forum/blog post from someone with authority (Apple employee or someone along the lines of Erica Sadun) saying it\'s not possible, or if it is possible then I want the solution. A workaround like \"ask the user to change the setting\" isn\'t good enough either.


回答1:


I would like to add something, since I've opened a TSI and somehow I asked about this and have been answered. From Quinn "The Eskimo!":

"This depends on you mean. You have some control over how the notification appears based on how you set the UILocalNotification properties (things like alertBody, soundName, and so on). However, if you're asking about the way in which those properties are interpreted (the things the user can customise in Settings > Notifications), those are user preferences and not exposed via any API."




回答2:


I have an alarm app for which I also need this functionality. Under iOS5 if the user is using another app when it goes off then the banner appears. Consequently I spent a lot of time browsing for a solution.

However, it's not possible to control the style of alert generated by a UILocalNotification I'm afraid :(

You can see from the class reference that there's no provision for it:

http://developer.apple.com/library/IOs/#documentation/iPhone/Reference/UILocalNotification_Class/Reference/Reference.html

Or in the plist:

http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

Best thing to do is tell the user what to do to change the settings.




回答3:


You probably won't find 'authoritative' from your peers here, you should better ask directly to Apple; and the question has already been asked several times on theirs forums and not answered...

The HIG programming guide - http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/TechnologyUsage/TechnologyUsage.html#//apple_ref/doc/uid/TP40006556-CH18-SW1 -

"iOS apps that support local or push notifications can participate in Notification Center in various ways, depending on the user’s preferences."

That last sentence is the only 'authoritative hint' i found.

The USER'S preferences <= you can't force the user ('s preferences). Period. This design choice is clearly the Apple Way (applications' playground IS limited, to ensure the best user experience possible)

As for more authority... maybe shouting ?

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

Just kidding... Anyway, a workaround might be to provide a way in your application - hint/ tutorial - to push the user to change the alert style himself...

good luck !




回答4:


Obviously you don't like hearing no for an answer, but, no.




回答5:


You can use this line to query the current settings for notification style:

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

You can check the enabledTypes and then instruct the user to change the notification style in the settings.




回答6:


have you tried

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

in your didFinishLaunching method, this won't help those updating but should enable alerts for those first installing



来源:https://stackoverflow.com/questions/8229385/set-default-ios-local-notification-style-for-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!