2011-01-21 2 views
3

Si une UILocalNotification se déclenche avec un jeu de sons et que l'utilisateur appuie sur "Annuler" dans l'alerte de notification, le son est arrêté. Mais si l'utilisateur appuie sur "Afficher", iOS envoie la notification à l'application et le son continue à jouer. Y at-il un moyen d'annuler ce son de l'application? Annulation de la notification dans l'application une fois la notification est livrée ne fonctionne pas (je ne m'y attendais pas, la notification a déjà été livré après tout), et comme je n'ai pas l'ID du son du système sonore (et je didn didn ne l'alloue pas en premier lieu), je ne peux pas appeler AudioServicesDisposeSystemSoundID (puis-je?).Est-il possible d'empêcher la lecture du son d'une notification UILocal lors de la réception de la notification?

Est-il possible d'arrêter la lecture d'un son UILocalNotification si l'utilisateur appuie sur le bouton Action de l'alerte de notification?

Répondre

1

Apparemment, le problème n'existe que sur le simulateur (iOS 4.2 sdk), pas sur le périphérique réel.

+2

Il est pas vraiment vrai. Je viens de tester sur ios 6 et ios 7. Le son de la notification locale ne s'arrête pas après l'annulation de la notification locale. – revolutionkpi

+0

Notez que ma réponse est venue il y a presque 3 ans, avant ios 6 et 7. C'était vrai pour les appareils et les versions iOS que j'avais en main à ce moment-là. – Bogatyr

+1

Probablement vieux bug est apparu à nouveau - Je vois que le son est interrompu lorsque le téléphone n'était pas verrouillé (notification est apparue en haut), mais le son n'est pas interrompu si l'appareil était verrouillé et notification apparaît sur l'écran de verrouillage – asdf

2

Il ne s'arrête pas sur l'appareil trop (5,1)

J'ai essayé de le réparer, mais je ne peux pas comprendre.

Je l'ai eu en fait d'arrêter sur le simulateur en utilisant ce

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 
    UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 
    if (localNotif) { 
     [[UIApplication sharedApplication] cancelLocalNotification:localNotif]; 
    }  
    return YES; 
} 

mais il n'arrête toujours pas sur l'appareil

0

Il peut être manipulé dans la méthode délégué d'application comme suit, si l'utilisateur robinets sur le bouton d'action de l'alerte de la notification, la méthode suivante sera appelée, il nous pouvons annuler la notification

- (void)application:(UIApplication *)app 
didReceiveLocalNotification:(UILocalNotification *)notif { 
[[UIApplication sharedApplication]cancelLocalNotification:notif]; 
} 
+1

IOS 7.1, sur un iPhone 5 :-( –

+1

Pouvez-vous confirmer sur quel appareil et avec quelle version particulière cela arrête réellement (silences) le son de notification? –

0

J'ai eu le même problème quand initia Lely test avec un iPhone 4.

Le problème apparaît pour être parti à partir de iOS 8 et maintenant les notifications locales s'arrêtent lorsqu'elles sont annulées après la transition vers l'application.

iPhone4 [iOS - 7.1.2] - Son de notification locale continue à jouer dans l'App, peu importe ce que
iPhone6 ​​[iOS - 8.1.1] - Arrêt de son local de notification lorsque annulé par programme

De ce que je peux en déduire, il semble une solution existe quelque part dans iOS 8.x
(Hélas, je ne l'ai pas réussi à trouver de la documentation ou les notes de version sur la question.)

Le problème devient pas un problème pour les applications axées sur iOS 8
(à condition que vous annulez la notification locale entrant)

Questions connexes