2014-02-15 82 views
0

編輯如何區分客戶端設備?

我只需要區分三種之間的設備。因此,在我的應用程序中,我可以向當前用戶發送更新,但可以在其他活動設備上發送更新,如果他目前從這些其他設備中有任何活動會話!

可能的解決方案
我可以忽略這一點,因爲這使得它更難。但這意味着我總是發送推送更新,即使用戶只能從一個設備訪問應用程序!然而,這確實給了我推送通知歷史將始終具有推送通知的完整歷史記錄的優點。代替有時無推送通知,因爲他是隻有一個設備上活動的可能的推送通知的時間(當因此不需要該通知)

ORIGINAL

所以不得不具有節點中的應用.js作爲後端。現在,它的提出,使得在同一臺服務器(意爲後端代碼)用於:

  1. 瀏覽器客戶端
  2. Android應用
  3. iOS應用

一切都是JSON。

現在我該如何瞭解請求從哪個「設備」發起。

「設備類型」僅在引導時檢查,此後「設備類型」存儲在用戶的會話中。

將「祕密」放入移動應用程序二進制文件中並不安全(我認爲)。

回答

1

對於iOS,您可以使用唯一標識符(例如,您可以在this related question/answer中找到詳細信息)。請記住,如果用戶刪除並重新安裝了您的應用,則唯一標識符將會更改。

對於瀏覽器,您可以使用IP地址或瀏覽器首次連接到服務器時所提供的某種「令牌」或cookie。

對於Android,您可以使用Settings.Secure#ANDROID_ID,as found in the answer to this question

1

您可以使用User-Agent標頭傳遞設備和操作系統版本,就像瀏覽器現在所做的那樣。