2013-04-24 78 views
1

是否可以通過pyapns數據其他數據?例如,假設我有一個後期模型。每篇文章都有一個post_id。我想用推送通知發送post_id。收到推送通知的用戶將收到類似的內容,「Alex對您的帖子發表了評論。」使用Django通過Pyapns(iOS推送通知)發送其他數據

用戶將看不到post_id。它對用戶來說是隱藏的,但我仍然希望發送這些額外的數據,以便當用戶點擊推送通知時,它將引導他們到達正確的帖子。

這是我在我的util.py:

import pyapns 
import xmlrpclib 

class PyapnsWrapper(object): 

    def __init__(self, host, app_id, apns_certificate_file, mode='production'): 
     self.app_id = app_id 
     pyapns.configure({'HOST': host}) 
     pyapns.provision(app_id, 
          open(apns_certificate_file).read(), 
          mode) 

    def notify(self, token, message): 
     try: 
      pyapns.notify(self.app_id, 
          token, 
          {'aps':{'alert': message}}) 
     except xmlrpclib.Fault, e: 
      print e 

我怎麼可能修改這一個額外的現場發送與通知的說法?

回答

1

嘗試

{'aps':{'alert': message},'post-id':post_id}更換

{'aps':{'alert': message}}

我不熟悉pyapns,我不知道python,但APNS有效載荷格式允許向有效載荷添加自定義屬性。我不確定我的語法是否準確(正如我所說我不知道​​python),但你應該從中得到它的想法。

的JSON有效載荷應該是這樣的:

{ 

    "aps" : { 

     "alert" : "Alex commented on your post.", 

    }, 

    "post-id" : 435472 

} 

當在通知和應用程序的用戶點擊打開,你就可以訪問自定義數據這種方式(notificationInfo將包含post-id鍵值):

- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    NSDictionary* notificationInfo = 
     [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
    if (notificationInfo) { 
     [self someProcessing:notificationInfo]; 
    } 
    ... 
    return YES; 
} 
+0

我會試一試,讓你知道它是否有效! – noahandthewhale 2013-04-25 14:36:49