2017-11-29 6 views
0

프로젝트에서 푸시 알림을 구현했으며 푸시 알림 토큰이 올바르게 표시됩니다. 로그인 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

어디에서 데이터베이스를 확인합니까? – Hexfire

+1

토큰을받을 구체적인 시간이 없습니다. 2ms/2 초 또는 1 분이 걸릴 수도 있습니다. 올바른 접근법은 토큰을받을 때마다 로그인 API가 아닌 별도의 API로 서버에 전송하는 것입니다. –

+0

@Hexfire 우리 mysql db.where에 토큰을 저장했습니다. –

답변

0

이 시나리오를 실험 한 후 푸시 토큰 생성은 언제든지 걸릴 수 있습니다. 특정 기간은 없습니다. 우리가 토큰을 생성 할 때 토큰을 업데이트 할 대표에게

-(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를에 토큰을 얻을 때 대부분 더 나은 통화 API를이 때 응용 프로그램 출시를 생성하지만 우리는 ensure.So 수 없습니다.