2015-12-21 34 views
2

當用戶a向用戶b發送推送通知時,用戶b將收到通知,但一旦他們點擊該通知,通知中的有效內容就會消失。相反,當用戶b打開通知時,通知中的有效內容將被保存爲解析,以便他可以查看發送給他的所有通知。這就像通知歷史。以下是我的代碼發送通知。我需要關於如何在這些通知中保存有效負載的幫助,以便用戶可以查看通知歷史記錄。無論如何要保存推送通知嗎?

func pushNotifications(){ 


    let userQuery: PFQuery = PFUser.query()! 
    userQuery.whereKey("objectId", containedIn: Array(setOfSelectedFriends)) 

    let pushQuery: PFQuery = PFInstallation.query()! 
    pushQuery.whereKey("user", matchesQuery: userQuery) 

    let push = PFPush() 
    push.setQuery(pushQuery) 
    push.setMessage("\(username!) wants you to meet them at \(location!)") 

    push.sendPushInBackgroundWithBlock { 
     success, error in 

     if success { 
      print("The push succeeded.") 
     } else { 
      print("The push failed.") 
     } 
    } 

} 

回答

5

你或許應該這樣做的其他方式,做一個表,其中保存新的「MeetingInvites」,每當一個新的條目被添加發送推送通知給相應的用戶。

使推送通知成爲實際新條目的副作用。不要使條目成爲推送通知的副作用。

這將節省雖然你不必處理與迷失通知的麻煩 - 也許是接收用戶打開應用程序,然後東西崩潰和您的推送通知和所有連接的數據將會丟失。

更多一點細節:爲「請求」用戶創建一列,爲「合作伙伴」創建一個列。在您的代碼中,將currentUser設置爲請求者,將夥伴設置爲...呃...合作伙伴。然後在您的客戶端設備或服務器上創建一條推送消息。在這兩種情況下,都會將推送消息發送給「合作伙伴」。

+0

好吧,是的,我認爲這將是一個更好的方法。在分析結束時,我將如何構建這個類?像條目一樣。說用戶一個想給用戶發一個「消息」說在x位置見我。當用戶a發送它時,我將如何構造這個類,它將出現在用戶b的設備上。 – stackerleet

+0

@stackerleet我包括一個小段落。 – luk2302

+0

@stackerleet我摔倒了,就像我回答了你的問題 - 如果你也這麼認爲,考慮接受答案。仔細查看你以前的問題,你有多個你還沒有接受答案的問題。通常情況下,你作爲提問者感謝其他人花時間和精力來幫助你。 – luk2302