主要說一下iOS的遠程推送 主要看下面兩張圖服務器
Probider是你的服務器 APNs是蘋果推送的服務器 Apple Notifiction Service iPhone 是你的手機終端 Client App 是你的應用程序app
過程分爲三個過程ide
更詳細一點的圖ui
這個圖更爲詳盡的講述整個過程3d
其中最關鍵的是第三步 應用程序能夠直接把 deviceToken 發送給 YourServer,可是在iOS9 以後 deviceToken 是會發生變化的, 當你卸載程序從新安裝的時候 可能會受到重複的推送,此時 能夠經過 uuid + keyChain + deviceToken的方法,傳給 YourServer, 讓 YourServer 根據 uuid來更新 deviceToken 來保證惟一性,經過 keyChain 保存uuid ,讓應用程序 卸載的時候仍能夠 保留 UUID,保證惟一性。 然而 在iOS 10 以後 卸載應用 會清空 keyChain 參考連接 forums.developer.apple.com/thread/7227…cdn
此時 有什麼辦法呢?blog