web-dev-qa-db-fra.com

Comment pouvez-vous désactiver le centre de notification iOS dans votre application?

Si vous avez une application iOS en plein écran et que vous souhaitez empêcher le centre de notification d'être retiré, pouvez-vous et comment?

Vous pouvez également bloquer des alertes de notification ou des bannières d'affichage lorsque votre application est en cours de chargement? (Je pense que ce n'est pas un moyen de certitude, mais je voulais demander au cas où.)

26
Rodney S. Foley

Cela a été mon expérience que les applications plein écran (statusBarHidden = YES) Avoir un comportement de centre de notification légèrement différent par défaut: la glissant sur la zone précédemment occupée par la barre d'état ne montrera qu'un petit onglet. Seule le glissement de l'onglet indiquera ensuite le centre de notification. Cela a été suffisant pour empêcher l'activation accidentelle pour moi jusqu'à présent.

Actuellement, il n'y a pas d'API publique pour manipuler le comportement du centre de notification. Je suis d'avis que ce n'est pas probable qu'une application sera jamais peut bloquer l'apparence d'une notification et seulement moins improbable qu'une application serait en mesure d'empêcher le centre de notification d'apparaître. IOS est tout au sujet d'une expérience d'expérience utilisateur cohérente au prix de la liberté du développement. Je pouvais voir être frustré par ce type de fonctionnalité si j'étais un utilisateur indexprimant.

Tout ce qui dit, il y a toujours le côté obscur d'API sans papiers. Je ne serais pas surpris si vous pouviez tirer une certaine intelligence en utilisant ceux sur un appareil jailbreaké, mais ce n'est pas mon tasse de thé.

20
Matt Wilding

Je viens de comprendre cela. Je développe un jeu qui fonctionne dans le paysage et que chaque fois que j'ai touché le côté gauche, l'onglet Centre de notification apparaîtrait. Pour résoudre ce problème, vous souhaitez ajouter ce qui suit:

setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft

J'ai ajouté ce droit après que je metstatusbarhidden et je n'ai plus le problème de l'onglet Notification.

J'espère que cela pourra aider.

6
Ben Johnson

Une API a été introduite dans IOS 11, à côté d'un changement de comportement sur la présentation du centre de notification (et du centre de contrôle) pour vous permettre de spécifier le comportement souhaité.

UIViewController.preferredScreenEdgesDeferringSystemGestures

Dans iOS 11+, le centre de notification extraire toujours lors de la balayage du haut de l'écran, même si la barre d'état est cachée. preferredScreenEdgesDeferringSystemGestures vous permet de spécifier que glisser un bord d'écran ne doit pas déclencher l'interface utilisateur du système standard et fournira une onglet Pull-Out que l'utilisateur doit glisser à nouveau pour faire ressortir l'interface utilisateur du système.

Ceci est destiné à être utilisé pour les jeux où les utilisateurs glissent fréquemment, où il serait indésirable d'apporter une interface utilisateur du système au lieu de contrôler le jeu. Pour une application immersive comme ça, vous pouvez retourner .all Pour spécifier que vous ne voulez pas que l'interface utilisateur du système apparaisse à la première fois que vous balayez tous les bords de l'écran et que vous préférez préférer les gestes propres de votre application.

Notez que cela désactivera la possibilité de glisser une fois en bas pour fermer une application sur des iPhones et des iPads qui n'ont pas de boutons à domicile - l'utilisateur devra glisser deux fois pour fermer l'application.

Il n'est toujours pas moyen de désactiver complètement le centre de notification de votre application, ni d'éviter que votre application soit au premier plan.

3
Jordan H