2

J'ai obtenu le jeton de l'appareil via la méthode didRegisterForRemoteNotificationsWithDeviceToken. Je voulais utiliser le jeton d'appareil dans une autre méthode. Je l'ai essayé de cette façon,Comment utiliser le jeton de périphérique dans une méthode autre que didRegisterForRemoteNotificationsWithDeviceToken?

Dans la méthode didRegisterForRemoteNotificationsWithDeviceToken:

str = [NSString stringWithFormat:@"%@",deviceToken]; 
// str is the NSString which is declared in the appDelegate.h file as global variable 

méthode Dans didReceiveRemoteNotification:

NSLog(@"Device Token : %@",str); 

Quand je fais comme ça le Device Token revient comme "NOSNIFF".

Comment puis-je stocker ce jeton de périphérique dans une variable globale et l'utiliser dans l'autre classe ou dans une autre méthode.

Répondre

2

Dans votre classe déléguée app définissent la méthode + (CustomAppDelegate *)sharedAppDelegate dont la mise en œuvre devrait ressembler à celui-ci:

+ (CustomAppDelegate *)sharedAppDelegate 
{ 
    return (CustomAppDelegate *) [UIApplication sharedApplication].delegate; 
} 

CustomAppDelegate est le nom de votre classe de délégué app.

Dans la méthode de votre besoin d'obtenir la valeur de str variable que vous devez taper suivante:

NSString *token = [[CustomAppDelegate sharedAppDelegate] str]; 

CustomAppDelegate est le nom de votre classe de délégué de l'application et str est synthétisé propriété (ou le nom de la méthode) où jeton dispositif est stocké.

Avant d'appeler sharedAppDelegate ne pas oublier de import "CustomAppDelegate.h"

+0

Ceci ouvre l'écran de lancement de l'application, mais alors tous les contrôleurs de vue ne sont pas chargés, y a-t-il un autre exemple que vous pouvez donner comme je l'ai J'ai essayé ceci mais -> Lancement d'application -> DidfinishlaunchwithOption appelé -> Contrôleur de vue initiale non appelé pour viewdidload si je mets ce [[UIapplication sharedApplication] setDelegate: self] dans fini le lancement –

2

Vous pouvez ajouter le jeton de périphérique au NSUserDefaults dictionnaire comme ceci:

-(void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 
{ 
    [[NSUserDefaults standardUserDefaults] setObject:deviceToken forKey:@"deviceToken"]; 

Cela peut alors accéder à d'autres méthodes comme ceci:

NSString *deviceToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"deviceToken"]; 
Questions connexes