2012-08-28 193 views
2

我哈弗閱讀這篇文章到:如何推送通知發送到特定設備

Apple Push Notifications to specific Users

我需要發送推到特定的設備,但我的問題是,登錄到我的應用程序的用戶,被鑑定通過生成的UDID,不使用棄用的UIDevice。我看到easyAPNS存儲這個值到MySQL的:

CREATE TABLE `apns_device_history` (
2 
    `pid` int(9) unsigned NOT NULL auto_increment, 
3 
    `appname` varchar(255) NOT NULL, 
4 
    `appversion` varchar(25) default NULL, 
5 
    `deviceuid` char(40) NOT NULL, 
6 
    `devicetoken` char(64) NOT NULL, 
7 
    `devicename` varchar(255) NOT NULL, 
8 
    `devicemodel` varchar(100) NOT NULL, 
9 
    `deviceversion` varchar(25) NOT NULL, 

我不知道如何註冊應用程序用戶使用此錶鏈接,從而實現發送推特定的用戶。是否有可能通過代碼用戶pid或設備令牌獲取?

非常感謝!

回答

3

開發任何級別的APNS都是一項艱鉅的任務,除非您對服務器端和客戶端的角度都有很多知識。

事情要記住:

  1. 服務器端必須考慮到設備標識符(標記)會改變每個設備上,如果他們更新或恢復他們的設備 - 甚至得到一個新的設備!
  2. 客戶端必須考慮必須在App Delegate中實現的委託方法,以正確接受並處理這些推送通知,並開始啓動它們。 (示例如下)。
  3. 服務器再次必須認識到,如果您沒有設置適當的「反饋」服務,您可以將您的推送通知證書列入黑名單。這樣做是檢查標識符是否存在,如果不存在,則將其從數據庫中取出,以便不再繼續嘗試向該用戶發送推送通知。
  4. 在服務器上,您可以一次發送一個通知(每個通知之間有一段時間),也可以將它們排隊成羣髮量並「流」這些通知。真的,你必須遵循這個或者你可以被列入黑名單,並且不能再次向用戶發送推送通知。

在開始創建任何類型的推送通知服務器之前,我們需要了解這4點。

id (int) 
token (int - 32 length) 
dateChanged (dateTime) 

這三個列出的字段實際上都是您需要的基本推送通知服務器。數據庫中的個人標識,設備條目的標記,以便知道誰將收到推送消息,dateChanged是可選的,但很好知道您在數據庫中擁有多長時間。

回到「流式傳輸」推送通知的概念 - 您應該仔細研究如何使用基本PHP腳本一次發送多個通知(我已經使用少於100行的代碼在PHP中完成了整個服務器,所以基於類的PHP可以非常簡單)。

CODE:

不幸的是它會佔用大量的空間,把所有必需的代碼爲基礎的推送服務,但我強烈建議尋找到我上面還有一些非常驚人提到的幾點此任務教程如下:

+0

非常感謝您的評論,非常有幫助! – theomen

相關問題