7

我想爲應用程序(iOS和Android)實施推送通知,並且需要在以下方案中進行說明。在iOS和Android上處理推送通知方案

我明白推送通知的工作原理和侷限性。我確實閱讀過文檔,但這只是讓我感到困惑,並沒有回答我的所有問題。

如何是在IOS和Android處理以下情況:

  • 當裝置被關斷
  • 當設備沒有連接到3G或WiFi網絡
  • 當設備已經崩潰和需要重新啓動
  • 當應用程序在前臺
  • 當應用程序在後臺
  • 當用戶CUR當我的應用程序關閉(未打開/啓動)
  • 當推送通知是用戶特定的,並且兩個用戶共享相同的設備和應用程序時。示例:如果夫妻共享同一設備並使用推送通知的銀行應用程序。
  • 如果設備由多個用戶共享,您可以發送用戶特定通知嗎?
  • 當用戶在多個設備上安裝應用程序
  • 您是否可以一次向用戶註冊的所有設備發送通知?
  • 您是否將設備類型(iOS或Android)的registrationID存儲在用戶表中,或者是否有辦法通過檢查令牌或註冊ID來區分設備類型?
  • 您可以取消先前發送的尚未讀取的通知併發送新的通知嗎?
  • Android推送通知在Kindle Fire上無法運行並需要實現亞馬遜設備消息傳送
  • 是否還有其他需要考慮或計劃的內容?我知道處理註冊和反饋服務

回答

3

我會回答你的一些問題,具體到android思想。不知道iPhone,如果它的類似或不。當通知是由服務器觸發,它不具有 與應用程序狀態(運行,關閉,背景或前景 )任何關係

  1. 設備從谷歌雲服務器和 收到通知。
  2. 如果通知在未連接到 互聯網(關閉或未連接到網絡)時發送到設備,它僅在連接到網絡時纔會得到 通知。但是,如果設備 在收到通知後崩潰並重新啓動,您的 將不會再次收到通知。

它是否是用戶特定的?

這取決於各個服務器的實現。

我們是否存儲設備​​類型?

是的,我們可以。

我們可以區分iPhone和android的ID嗎?

是的,android設備ID的長度比iPhone的長。

我們可以取消已發送的通知嗎?

不,它是單向的通信渠道據我所知。

3

當設備處於關閉狀態:

答: IOS/Android的服務器(不是你的服務器)將處理時發送推送通知。它檢查設備是否可達。我們可以定義IOS/Android服務器應該嘗試發送推送通知的次數。

當設備沒有連接到3G或WiFi網絡

答案: 沒什麼關係到2G/3G /無線網絡連接。設備應通過任何網絡連接到Internet。

當設備已經崩潰,需要重新啓動

答: IOS/Android的服務器將檢查設備可達與否。

當應用程序在前臺

答: 沒有在前臺與應用。

當應用程序在後臺

答: 沒有在後臺與應用。

當用戶正在使用該應用程序

答: 沒有到App目前正在使用有關。

當我的應用程序被關閉(未打開/啓動)

答: 相關的應用程序沒有關閉。

當推送通知是用戶特定的並且兩個用戶共享相同的設備和應用程序時。示例:如果夫妻共享同一設備並使用推送通知的銀行應用程序。

答案: 這取決於您如何在您的服務器上實現。您將爲每個用戶管理設備ID。因此,您的實施邏輯可以發送給多個用戶的同一設備。

如果設備由多個用戶共享,您可以發送用戶特定通知嗎?

答案: 這取決於您如何在您的服務器上實現。您將爲每個用戶管理設備ID。所以這取決於你的實現邏輯。

當用戶在多個設備上安裝應用

答: 這取決於你如何在服務器上實現。

您是否可以一次向用戶註冊的所有設備發送通知?

答案: 是再次根據您的實施邏輯。

您是否在User表中存儲了具有registrationID的設備類型(iOS或Android),或者是否有辦法通過檢查令牌或註冊ID來區分設備類型?

答: 是的,你需要存儲的設備類型,來識別(IOS/Android的),你需要發送推送通知請求的服務器。

您可以取消先前發送的尚未讀取的通知併發送新的通知嗎?

答案: 不,您不能取消請求。

這還算是不錯,Android的推送通知不能在Kindle Fire的工作,將需要實現亞馬遜設備消息

答: 需要圍繞谷歌它。

還有什麼我需要考慮或計劃?我知道處理註冊和反饋服務

回答: 需要谷歌它周圍。

+0

當設備處於前臺或後臺時,設備上會發生什麼情況?用戶是否收到通知或他們必須檢查通知中心? –

+0

對於應用程序被完全關閉,Messenger和Facebook這樣的應用程序如何繞過這個,他們是否有特殊的權限與iOS和Android? – Rob85