2012-08-02 106 views
4

我目前正在調查通過在線離線支持的應用程序,並找出APNS的使用,這是很容易理解,當我的應用程序只與單個用戶的交易。(就像SMS)我應該如何處理APNS的多帳戶應用程序?

我的理解是,安裝到特定設備的每個應用程序都將擁有自己的設備令牌(即使註銷到APNS並重新註冊後也不會更改)。所以,當一個用戶從不同的設備登錄時,APNS又會依次識別服務器。

但是,當我嘗試實施多賬戶應用程序(就像Facebook一樣,不同的人可以使用相同的手機登錄),出現了一些問題。

當用戶A登錄時,當應用程序處於後臺狀態時,它確實收到通知。

但是,當用戶A註銷(當電話沒有互聯網連接,這意味着不能立即更新服務器刪除帳戶),然後用戶B登錄,同時服務器試圖推送通知到用戶A的電話,通知已經由電話接收(但是這是用戶A的通知),並且用戶B將接收到(在實際情況下永遠不會發生的)。

看來,APNS無法檢查應用程序內帳戶身份驗證。

所以,我的問題是,

  1. 有沒有什麼辦法來檢查並刪除手機上的通知(我讀過的蘋果文檔,並注意有一個QoS的存儲最後通知)?

  2. 在使用APNS時,處理這種認證問題的好方法是什麼?

如果我有任何概念誤解,請如有糾正我的問題。並希望我的問題不健全的愚蠢和笨拙而且也沒有任何問題的重複...

回答

2

因此,在第一:

如何用戶A可以註銷並在Facebook登錄沒有網絡?

當用戶B登錄,因此互聯網連接,然後你可以發送到你的服務器:現在userB在這個設備令牌。

而對於案例:用戶B登錄,同時服務器嘗試推送通知到手機 用戶A

如果應用程序是拼命地跑,然後APNS通知,你會得到

application: (UIApplication*)app didRegisterForRemoteNotificationsWithDeviceToken: (NSData*)deviceToken 

不在設備通知中心消息窗口中。

,你可以這樣做:

1)如果用戶A已經在日誌中,然後發送本地通知作秀通知

2)如果在日誌或用戶等用戶logouted,然後什麼都不做

希望它有幫助。也許我錯了,如果你是其他人。

+0

感謝:) ,也許Facebook的例子不是那麼好xD 因爲我的應用程序將支持可以在離線模式下完成的功能。 我曾嘗試註銷Facebook應用程序沒有互聯網連接,並以某種方式註銷我.__。 – user1516507 2012-08-03 01:07:12

+0

而且,發送Push notif的壞主意取決於在線用戶。您可以使用本地通知,以獲得良好的結果。但是,我明白了,你需要使用APNS – CReaTuS 2012-08-03 02:06:36

+0

哦!你的意思是,我不應該使用APNS的默認「提醒」,而應該改變我的策略爲: 服務器仍然要求APNS將通知推送到設備,而不顯示任何類型的警報視圖以及徽章號碼的增加,而是發送一些用戶信息,如「接收者」:「[email protected]」,並檢查剛剛登錄的用戶是否是[email protected]。如果是,請充分利用本地通知,否則什麼都不要做。 這是你的意思嗎? – user1516507 2012-08-03 11:15:05

2

如果您有一項功能可以從應用程序中註銷(無需登錄新用戶),我找不到任何停止推送通知的方式,除非讓服務器知道用戶已經登錄出。

如果沒有互聯網連接,則不能進行正確的註銷。如果您需要使用此功能,則應驗證與服務器的註銷。由於無法到達服務器,因此可以通知用戶註銷失敗。

下面是一個例子:

  • 用戶A登錄在對具有設備令牌TX裝置X。

    - >服務器聯營令牌TX屬於用戶A.

  • 用戶A登錄在設備Y,其具有設備令牌TY。

    - >服務器令牌相關聯的TX和TY到屬於用戶A發送到用戶

  • Push消息甲

    - >服務器發送推送消息到TX和TY。

  • 用戶A從設備X和用戶B登錄註銷在設備X.

    - >服務器刪除令牌TX到用戶的相關聯的

    - >服務器聯營令牌TX給用戶B.

  • Push消息發送至用戶A

    - >服務器向TY發送推送消息。發送到用戶B

  • Push消息

    - >服務器發送推送消息給TX。

  • 用戶B註銷,但沒有互聯網連接

    - >登錄失敗,用戶B仍然登錄,接收對話 「無法註銷」

+0

謝謝!但是,正如我在另一個答案中的評論中提到的,我的應用程序需要脫機功能(實際上,我的應用程序是脫機主導的一個.....所以不知何故無法提示用戶註銷失敗,因爲他們沒有't連接到服務器....看起來很奇怪...) 不知道Facebook如何讓它Orz – user1516507 2012-08-03 05:21:17

相關問題