Application de réveil dans iOS

Je dois créer une application de réveil pour l'iPhone dans lequel l'user peut définir l'heure de l'alarme et le son. Pour ce faire, j'ai utilisé UILocalNotification pour triggersr l'alarme.

Maintenant, dans UILocalNotification, nous recevons d'abord Notification Alert avec les options "Close" et "View". Si l'user tape sur "View", alors mon délégué reçoit l' application:didReceiveLocalNotification: message et le son de l'alarme est application:didReceiveLocalNotification: .

Mais dans l'application d'alarme natif du système, nous ne voyons pas d'alerte de notification; il joue juste directement le son de l'alarme. Comment puis-je faire en sorte que mon application utilise ce comportement?

Je suis d'accord avec David. L'application d'alarme embeddede iOS reçoit un traitement spécial de la part d'Apple pour un son> 30 secondes en arrière-plan. Il semble utiliser une API privée pour le faire sonner plus longtime même quand il est en arrière-plan ou fermé. Ce n'est pas disponible pour d'autres applications construites en dehors d'Apple, alors n'essayez même pas de rivaliser avec lui. Si vous achetez toutes les applications de réveil dans l'App Store (aka: approuvé par Apple) et les essayer un par un, vous verrez qu'ils manquent derrière l'application d'alarme embeddede dans la fonction la plus importante d'une alarme: à savoir "Sounding pendant une longue période, quel que soit l'état de l'application (active, arrière-plan ou fermée) "

Votre meilleur pari pour simuler une alarme de fond est d'utiliser UILocalNotification pendant 30 secondes. Si vous voulez vraiment réveiller votre dormeur lourd, prévoyez de triggersr cinq de ces notifications à soixante secondes d'intervalle ou quelque chose comme ça, dans l'espoir qu'ils se réveilleront avant la fin de la 5ème notification.

Notez qu'avec cette méthode, votre user qui manque l'alarme aura 5 popups sur son écran quand il se réveillera (less s'il se réveille pendant l'un des popups d'alarme), donc ils passeront leurs premières secondes de leur fermeture du matin ces popups – pas la meilleure expérience user.

Conclusion: les applications de réveil sont bonnes pour l'utilisation de premier plan seulement. Meilleure application d'alarme là-bas qui fonctionnera dans n'importe quel état est l'application embeddede d'horloge faite par Apple.

Ce comportement d'alarme n'est pas disponible pour les applications iOS. Vous avez la possibilité de créer des notifications locales et d'append des sons, mais la durée du son est limitée. Vous ne pouvez pas avoir un son en continu comme sur l'alarme embeddede.

Une option consiste à répéter les alertes. Donc, votre application envoie une alerte, attendez un peu puis envoyez-en une autre. Vous répétez le nombre de fois spécifié ou jusqu'à ce que l'user interagisse avec votre application. Je ne pense pas que cela fournirait une grande expérience user, donc je ne le recommand pas.

Je suis sûr que vous pouvez avoir votre propre son de notification locale personnalisé.

Exemple de code localNotif.soundName = @"alarmsound.caf";

Notez que le son de notification local devra être de seulement 30 secondes ou less pour être joué. Vous pouvez get plus d' informations ici .

Si vous activez les modes d'arrière-plan "Audio, AirPlay et Image dans l'image" et "Notifications à distance", vous pouvez utiliser une notification push silencieuse pour réactiver l'appareil, puis lancer la lecture audio, et aussi longtime que vous jouez ne sera pas limité à 30 secondes pour répondre à la notification comme d'habitude. Cela ne fonctionnera pas si l'application a été supprimée manuellement par l'user, mais si l'user le fait, vous pouvez lui envoyer une notification locale lui demandant de rouvrir l'application.