我在项目中实现了推送通知,我正确地获得了推送通知令牌。我正在使用login api发送此令牌。
-(void)application:(UIApplication* )application didRegisterForRemoteNotificationsWithDeviceToken:(NSData* )deviceToken
{
NSString *devToken = [[deviceToken description] stringByTrimmingCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
devToken = [devToken stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"token: %@",devToken);
self.pushNotificationToken = devToken;
[[NSUserDefaults standardUserDefaults] setObject:devToken forKey:@"PushToken"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
我完全得到了令牌。但有一段时间我认为生成令牌可能需要更长的时间。因为登录api不包含令牌。我已经检查了存储令牌的数据库。有一段时间是NULL
。当我注销并登录时,数据库包含令牌并且工作正常。将推送令牌发送到服务器的最佳方法是什么?
答案 0 :(得分:0)
在尝试此方案后,可以随时使用推送令牌生成。没有特定的持续时间。大多数情况下,它会在应用程序启动时生成,但我们无法确保。当我们在代理中获得令牌时,更好地调用api
-(void)application:(UIApplication* )application didRegisterForRemoteNotificationsWithDeviceToken:(NSData* )deviceToken
{
NSString *devToken = [[deviceToken description] stringByTrimmingCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
devToken = [devToken stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"token: %@",devToken);
//Call API to Update Device Token
}
在生成令牌时调用api更新令牌。