Lors de la réception d'une notification de poussée à distance, l'application est en arrière-plan, l'application entre applicationsDecomomeactive. De là, comment puis-je accéder à la nsdiction des données de la notification? p>
4 Réponses :
Les données de notification sont livrées à votre application dans Application: Didreceiveremotenotification: code>. Si vous souhaitez le traiter dans
ApplicationDidbecomeactive: Code> Vous devez l'enregistrer dans
Application: Didreceiveremotenotification: Code> et lisez-le dans
ApplicationDidbecomeactive Code>. P>.
Désolé de faire revivre cela, mais que se passe-t-il lorsque vous recevez la notification sur demande: Didreceiveremotenotification et votre demande sont au premier plan, ce qui signifie que l'applicationDecomomeActive ne sera pas appelée.
Dans Application: Didreceiveremotenotification: Code> Vous pouvez interroger
- [UIAUPPLICATION ApplicationState] code> Pour savoir si votre application est déjà au premier plan. S'il est alors, traitez simplement la notification immédiatement.
Si votre application est dans La charge utile de notification push peut être consultée dans L'état de l'état CODE> Lorsque la notification push est reçue et à tarauder, l'application sera invoquée avec
Application: Didfinishlaunchingwithoption: code> et non
Application: DidreceiveremotNotification : code>. p>
Application: DidfinishlaunchingwithOptions: Code> à partir de
LaunchOptions Code> Dictionnaire. P>
Ceci n'est pas correct Application: DidfinishlaunchingwithOptions: n'est pas appelé lorsque l'application est en arrière-plan, cela ne s'appelle que lorsque l'application commence. Ce que vous dites est totalement oposite, il sera d'abord appelé application: Didreceiveremotenotification: puis ApplicationDidbecomeactive:
J'utilise ce code pour gérer la poussée:
dans l'appdelegate p> J'espère que ce sera utile pour quelqu'un. P> heureux codage. p> p>
Version SWIFT:
var dUserInfo: [NSObject : AnyObject]? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // code... if let info = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? [NSObject : AnyObject] { dUserInfo = info } return true } func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { dUserInfo = userInfo } func applicationDidBecomeActive(application: UIApplication) { // code... self.yourAction(dUserInfo) } func yourAction(userInfo: [NSObject : AnyObject]?) { if let info = userInfo?["aps"] as? Dictionary<String, AnyObject> { } }