場景限制
- 企業開發者賬號,API 僅在公司局域網可訪問。
- App 必須連接局域網才能使用。
- APNs 需要公網連接 Apple 服務器,局域網隔離環境無法使用。
方案:XMPP 長連接
- App 啟動後建立 XMPP 連接到內網 Openfire/eJabberd 服務器。
- 服務器推送消息通過 XMPP 實時下發。
- App 進入後台:iOS 限制後台長連接存活,需啟用 VoIP 推送 或 Background Modes → Audio, AirPlay, and Picture in Picture 保持連接(需合理理由通過審核)。
- 若無法長連接,退而求其次:定時輪詢 或 本地通知模擬。
關鍵點
iOS 後台機制嚴格限制,純局域網環境下無 APNs 支持,XMPP 需解決後台保活問題,否則 Home 鍵退出後連接斷開,重新進入才能收到離線消息。