Nasıl applicationDidBecomeActive uzak push bildirim veri erişebilirim?

uygulama arka planda olduğu gibi uzaktan itme bildirim alırken, uygulama applicationDidBecomeActive girer. Oradan, bildirimden verilerin Nsdictionary'ye nasıl erişebilirim?

7
tarihinde sordu Perception 2011-07-18 15:48:35
kaynak

4 ответов

bildirim verileri application:didReceiveRemoteNotification: de uygulamanıza teslim edilir . applicationDidBecomeActive: de işlemek isterseniz application:didReceiveRemoteNotification: de saklamalı ve applicationDidBecomeActive de tekrar okumalısınız .

15
cevap Morten Fast 2011-07-18 15:52:19
kaynak

Swift versiyonu:

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> {
    }
}
2
cevap Harry Ng 2015-05-18 16:39:23
kaynak

itmeyi yönetmek için bu kodu kullanıyorum:

AppDelegate

@implementation AppDelegate{
    NSDictionary *dUserInfo; //To storage the push data
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //Check for options
    if (launchOptions != nil)
    {
        //Store the data from the push.
        dUserInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if (dUserInfo != nil)
        {
            //Do whatever you need
        }
    }

    return YES;
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{   
    //Data from the push.
    if (dUserInfo != nil)
    {
        //Do whatever you need
    }
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    //Store the data from the push.
    if (userInfo != nil)
    {
        dUserInfo = userInfo;
    }
}

umarım bu birisi için yararlı olacaktır.

mutlu kodlama.

1
cevap Marco Antonio Uzcategui Pescoz 2015-02-04 19:20:42
kaynak

uygulamanızın background durumunda ise itme bildirimi alındığında ve dokunulduğunda, uygulama application:didFinishLaunchingWithOptions: ve application:didReceiveRemoteNotification: ile çağrılacak.

itme bildirim yükü application:didFinishLaunchingWithOptions: den launchOptions sözlüğünde erişilebilir.

0
cevap db42 2014-06-01 13:14:04
kaynak