0

我實際上在我的遊戲中實現了推送通知服務,但我在腦海中想要澄清一些問題。推送通知中的設備令牌要求

實現完全在我們的自定義服務器上完成,因此沒有在此使用任何第三方服務幫助。爲此,我使用了核心Unity推送通知代碼。

NotificationServices.deviceToken

註冊完成後,我需要deviceToken添加到Web服務器。爲什麼我需要這樣做?我無法得到這個概念。

如果我添加SystemInfo.deviceUniqueIdentifier,那麼它將無法發送任何推送通知。它只能使用deviceToken。

請與此分享你的建議。

回答

0

推送僅適用於設備令牌,您必須獲取並將其存儲在服務器上。

我們在服務器上存儲設備令牌,服務器發送通知給所有用戶。 如果我們不保存設備令牌,那麼服務器如何發送通知以及在哪裏(設備令牌是每個設備的唯一ID)。

在應用程序委託你必須用這種方法得到它

-(void)application:(UIApplication *)app 
        didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{ 

     const unsigned *tokenBytes = [deviceToken bytes]; 
     NSString *hexToken = [NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x", 
         ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]), 
         ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]), 
         ntohl(tokenBytes[6]), ntohl(tokenBytes[7])]; 

    [[NSUserDefaults standardUserDefaults] setObject:hexToken forKey:@"DeviceTokenValue"];// Save your device token for use 
    [self saveDeviceToken:hexToken];//Send your device token to the server with API 

    } 
+0

感謝您的快速回復。 deviceToke值始終保持唯一嗎? – Siddharth

+1

iOS 9之後,如果用戶卸載應用程序然後安裝應用程序,則每次都會更改。否則它會一樣....並且設備令牌對於每個設備都是不同的。 你必須只調用一次註冊設備方法 在didFinishLaunchingOptions方法中,你必須檢查,該設備令牌是否保存在NSUserDefaults或沒有,如果沒有保存,然後調用註冊方法 –

+0

好吧,我得到你想說的。所以我可能只需要在完整的應用程序生命中獲得deviceToken和註冊過程一次?當用戶第一次運行時。 – Siddharth