web-dev-qa-db-fra.com

Définir le style de notification local iOS par défaut pour l'application

À partir d'iOS 5, il existe deux styles de notification: bannière et alerte (le "vieux" style). Un utilisateur peut définir le style à utiliser pour chaque application dans les paramètres. Cependant, la valeur par défaut semble maintenant être que les notifications sont affichées sous forme de bannière.

J'utilise des notifications locales pour les rappels des événements qui se produiront "maintenant". Une bannière disparaît peu de temps après son apparition (et il n'est pas évident que l'on puisse y toucher), donc pour ces notifications, il serait souhaitable d'avoir les notifications de style d'alerte car celles-ci restent à l'écran jusqu'à ce que l'utilisateur décide d'une action (ignorer ou aller à l'application).

Existe-t-il un moyen soit par le biais du code, soit par exemple Info.plist entrées pour indiquer à iOS que les notifications de style d'alerte doivent être utilisées par défaut (tant que l'utilisateur n'a pas configuré autre chose)?

Mise à jour: L'absence d'informations/documentation ne me suffit pas pour que cela soit réglé. Je veux soit quelque chose comme un article de forum/blog d'une personne autorisée (un employé d'Apple ou quelqu'un comme Erica Sadun) disant que ce n'est pas possible, ou si c'est possible, alors je veux la solution. Une solution de contournement comme "demander à l'utilisateur de modifier le paramètre" ne suffit pas non plus.

37
DarkDust

Je voudrais ajouter quelque chose, car j'ai ouvert une STI et, d'une manière ou d'une autre, j'ai posé des questions à ce sujet et j'ai reçu une réponse. De Quinn "The Eskimo!":

"Cela dépend de ce que vous voulez dire. Vous avez un certain contrôle sur la façon dont la notification apparaît en fonction de la façon dont vous définissez les propriétés UILocalNotification (des choses comme alertBody, soundName, etc.). Cependant, si vous demandez comment ces propriétés sont interprétés (les choses que l'utilisateur peut personnaliser dans Paramètres> Notifications), ce sont les préférences de l'utilisateur et ne sont exposées via aucune API. "

20
IBG

J'ai une application d'alarme pour laquelle j'ai également besoin de cette fonctionnalité. Sous iOS5, si l'utilisateur utilise une autre application lorsqu'elle s'éteint, la bannière apparaît. Par conséquent, j'ai passé beaucoup de temps à chercher une solution.

Cependant, il n'est pas possible de contrôler le style d'alerte généré par une UILocalNotification, je le crains :(

Vous pouvez voir dans la référence de classe qu'il n'y a aucune disposition pour cela:

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

Ou dans la liste:

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

La meilleure chose à faire est d'indiquer à l'utilisateur ce qu'il doit faire pour modifier les paramètres.

16
tarmes

Vous ne trouverez probablement pas "d'autorité" de vos pairs ici, vous devriez mieux demander directement à Apple; et la question a déjà été posée plusieurs fois sur leurs forums et sans réponse ...

Le guide de programmation HIG - http://developer.Apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/TechnologyUsage/TechnologyUsage.html#//Apple_ref/doc/uid/TP40006556-CH18- SW1 -

"Les applications iOS qui prennent en charge les notifications locales ou Push peuvent participer au Centre de notifications de différentes manières, selon les préférences de l'utilisateur."

Cette dernière phrase est le seul "indice faisant autorité" que j'ai trouvé.

Les préférences de l'UTILISATEUR <= vous ne pouvez pas forcer l'utilisateur (les préférences de). Période. Ce choix de conception est clairement le Apple Way (aire de jeux des applications IS limité, pour assurer la meilleure expérience utilisateur possible))

Quant à plus d'autorité ... peut-être à crier?

NON, VOUS NE POUVEZ PAS CHOISIR VOTRE STYLE D'AFFICHAGE DES NOTIFICATIONS, C'EST LE CHOIX DE L'UTILISATEUR

Je plaisante ... Quoi qu'il en soit, une solution de contournement pourrait être de fournir un moyen dans votre application - astuce/tutoriel - pour pousser l'utilisateur à changer le style d'alerte lui-même ...

bonne chance !

11
Vinzzz

Évidemment, vous n'aimez pas entendre non pour une réponse, mais non.

4
David Dunham

Vous pouvez utiliser cette ligne pour interroger les paramètres actuels du style de notification:

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

Vous pouvez vérifier le enabledTypes, puis demander à l'utilisateur de modifier le style de notification dans les paramètres.

0
voyager