Just a Computer Graphics Studio & My Life

[iOS] iOS 10 Push Token

過去研究過iOS蘋果推播通知服務 (Apple Push Notification Service),照理說取得Push Token應得心應手,然而理論跟實際有時是有些落差。

像是我自己測試後能順利去得Push Token,誰知道客戶那邊卻收不到⋯⋯

這篇可以說明iOS 10推播問題

iOS 10 Push Token2.PNG

當使用者點擊「允許」後,我們就能取得其Push Token。

在AppleDelegate.m中實作:

/**
 Theme: iOS 10 Push Token
 IDE: Xcode 8
 Language: Objective C
 Date: 106/02/24
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    NSLog(@"deviceToken: %@", deviceToken);

    // 儲存Push Token
    NSString *deviceTokenStr = [[[[deviceToken description] stringByReplacingOccurrencesOfString:@" " withString:@""] stringByReplacingOccurrencesOfString:@"<" withString:@""] stringByReplacingOccurrencesOfString:@">" withString:@""];
}

回應得到訊息:

deviceToken: <44ad99d6 ccc4b92a 67a175e3 dd5b7bb9 37b6052e 7de12b23 492e7c19 ce2c631b>

一切是如此的美妙~

然而事情進展得如此順利,就代表有問題⋯⋯記得iOS 10已經重構Local和Remote的推播,我們可以使用UserNotifications Framework。想起人生就是不斷挖坑給自己跳,原來iOS 10之後推播有新規則⋯⋯

打開專案設定Capabilities的Push Notifications功能後,iOS 10的裝置終於能觸發該method而取得push token啦~

iOS 10 Push Token.png

總結:

  • iOS 9:不需設定Capabilities,即能收到push token。
  • iOS 10:必須設定Capabilities,才能收到push token。

原來我在開發的時候拿iOS 9的手機來測,所以實作的很順利;幸好公司同時有iOS 10和iOS 9的手機,讓我可以確切找出問題所在!

參考:iOS開發 iOS10推送必看(基礎篇)

廣告

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: