2014-11-24 30 views
2

我在應用程序委託文件中放置了以下代碼。理論上,它應該從推送通知中提取消息並將其顯示在UIAlertview中 - 但它會顯示標題和蠟燭按鈕,而不會顯示其他消息。任何人都可以看到我要去哪裏嗎?從推送通知中提取「alert」文本

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 
    [PFPush handlePush:userInfo]; 
    pushText = [userInfo objectForKey:@"alert"]; 
    UIAlertView *alert = [[UIAlertView alloc] 
          initWithTitle:NSLocalizedString(@"News", "") 
          message:pushText 
          delegate:nil 
          cancelButtonTitle:@"Ok" 
          otherButtonTitles: nil]; 
    [alert show]; 
} 
+0

如果您嘗試調試代碼,您在pushText中獲得正確的值? – 2014-11-24 22:09:13

+0

不,它是'零'# – scb998 2014-11-24 22:17:36

+1

你的代碼似乎對我來說很好。 userInfo字典處理來自發件人的任何鍵值對,您是否從字典中提取正確的密鑰?我相信在解析時你可以發送一個自定義的用戶信息字典作爲參數,所以如果你定義@「customBodyText」:@「這是我的信息」,例如,確保你閱讀通知(接收它)時,你閱讀@「customBodyText」鍵。 – 2014-11-24 22:28:27

回答

6

推載荷的結構如下:

{ 
    "aps" : { 
      "alert" : "Push notification text" 
      } 
} 

所以,你需要拉出「APS」字典第一,然後你可以檢索值的「提醒」鍵:

pushText = [[userInfo objectForKey:@"aps"] objectForKey:@"alert"]; 
+0

這個伎倆 - 非常感謝你! – scb998 2014-11-24 23:06:41