Posts Tagged ‘Notification’

【iOS開發】發送Remote Notification給Device的二三事

Wednesday, November 13th, 2013


今天花了一些時間study了一下iOS的Push運作機制,得到以下的結論:

1. 發送iOS Push,Server端必須要記錄手機回傳的DeviceToken值,方能發送給對應的手機裝置。而這個值在同一個App(即相同的bundle id)和同一個Push憑證下,會是一個唯一的值(一串64個字元的十六進位值)。即使App砍掉,再重裝,DeviceToken也不會變。但,在不同的App環境(開發 and 正式)下,會分別得到不同的值。且不同的Push憑證也會得到不同的值(意即,如果有一天Push憑證過期了,我們不能重新上傳CSR檔去產生新的Push憑證用。否則先前所有已經存在DB裡的DeviceToken值,將全部失效。應該是renew那個Push憑證下載來用才對。)。

2. 發送Push是由Server發出一個request給Apple Push Notification service(APNs),並帶入定義好的資料格式,和額外的參數資料。並且可以有一些客制化的Notification UI調整。例如: Push的文字訊息、收到Push的音效、收到Push打開App後的預設圖片(音效和圖片必須是App裡預先放好的檔案,音效最多30秒,圖片必須滿版)、更改App Badge Number(那個紅色圓圈數字)、未開啟App時出現的Alert訊息的button文字。

3. App收到Push通知後,點開Push時。程式可以根據Server帶入的額外自訂參數,做不同的處理。例如: App收到Push通知點開時,可以跳到美食那頁,或者跳到活動頁面。基本上,App收到Push通知後,是可以做任何事的。只要預先定義好Server傳送的參數格式和Client需對應的處理動作即可。

教學文章
Apple Official Document