2017-09-16 4 views
0

J'utilise ce package: https://github.com/zo0r/react-native-push-notification pour planifier des notifications locales dans mon application réag-native.Comment puis-je désactiver mes notifications locales lorsque mon application iOS est en avant-plan?

Je peux planifier des notifications locales qui s'afficheront lorsque l'application est supprimée ou en arrière-plan. Si l'application est au premier plan, la notification visuelle est supprimée mais le son du carillon de notification est lu. Je ne veux pas que le son joue - car il ne peut que perturber ou irriter l'utilisateur.

Selon Apple docs "Le système n'affiche aucune alerte, n'inscrit pas l'icône de l'application, ou ne joue aucun son lorsque l'application est déjà en première position". Je me suis creusé la cervelle et je me suis gavé de docs, mais je n'arrive pas à comprendre ce que j'aurais pu faire pour contourner cette politique iOS.

Des idées où je devrais regarder dans mon code?

+0

iOS ne joue pas le son. Le son doit être joué soit dans le paquet, soit dans un endroit du code de l'application. – Raj

+0

C'est ce que je pensais aussi mais le son joue quand l'application est tuée et une notification apparaît (comme prévu) et autant que je sache, il n'y a pas d'appel de fonction dans mon application ou le paquet RN-PN pops Je ne sais pas pourquoi et comment: -/ –

+0

Je semble avoir trouvé une solution. Dans mon fichier AppDelegate.m, nous configurons les propriétés OneSignal et en ajoutant 'kOSSettingsKeyInFocusDisplayOption: @ (OSNotificationDisplayTypeNone)' aux paramètres: @ {} 'supprime les notifications si vous le souhaitez. Le paramètre par défaut selon OneSignal docs est: 'OSNotificationDisplayTypeInAppAlert - Affiche une alerte avec la notification' qui semble avoir été ce qui marchait sur les politiques de notification iOS. - Et il semble que cette question ne soit généralement pas applicable car je ne pense pas que beaucoup de gens mélangent plusieurs paquets de notification dans leur application. –

Répondre

0

Cette lib a une propriété qui peut le gérer pour vous. Réglez simplement playSound: false.

Vous pouvez le mélanger avec AppState pour basculer la valeur en fonction de la valeur d'état.

Plus d'info dans docs ci-dessous:

https://github.com/zo0r/react-native-push-notification#local-notifications

https://facebook.github.io/react-native/docs/appstate.html

it helps

+0

Le playSound booléen est défini lorsque la notification est planifiée, une fois iOS prévu à partir de là. Je ne peux pas mettre de logique dans playSound car iOS n'a pas accès à mon AppState. –