我正在使用InAppSettingKit來保存我的應用程序的設置。有些設置項目與Web服務器相關,必須保存在Web服務器中。我如何同步它們並保證它們是相同的?在應用程序設置中與網絡服務器同步
在此先感謝。
我正在使用InAppSettingKit來保存我的應用程序的設置。有些設置項目與Web服務器相關,必須保存在Web服務器中。我如何同步它們並保證它們是相同的?在應用程序設置中與網絡服務器同步
在此先感謝。
似乎InAppSettingKit沒有任何內置的客戶端/服務器交互支持,因此您需要實現自己的自定義同步系統。
您的問題涉及到一個非常廣泛的話題,並提供了不止一些可能的解決方案以及不同的複雜性,所以我只會解釋如果我處於您的情況下我該如何做。
首先,我要整合類似AFNetworking簡化存儲和數據從服務器到/檢索的過程。這將允許您輕鬆地將您的設置「POST」到服務器,並在您希望檢索它們時「GET」它們。 AFNetworking非常強大,記錄完備且免費。你可以在這裏瞭解更多:
每當用戶進行了更改,使用AFNetworking的方法來發布任何改變駐留在服務器上的一個腳本,並將其保存。當您想要檢索它時,請執行GET操作。您需要在應用中生成某種唯一的密鑰來引用每個用戶。如果您在應用程序中使用任何類型的登錄系統,則可以將其與此綁定。如果您希望用戶想要從多個設備檢索這些設置,則可能需要執行後者。
您還需要決定如何處理衝突的政策。如果本地保存的設置與您從服務器上獲取的設置不同,那麼您會做什麼?如果您的用戶無法訪問網絡,您會使用什麼回退?
通常的解決方案是採取更新的任何更新(意味着您需要存儲更新的時間戳) - 這可能最適合於簡單的需求 - 但邏輯可能會根據您的需求而有所不同。
你將需要一個服務器端組件來處理保存這些變化到服務器。這可能是一個Node.js,Ruby,PHP等腳本,它將輸入發送給服務器,並將其保存在數據庫或文件中。這也是一個廣泛的話題,實際上取決於你的編程背景是在服務器端。
注意:您應該考慮此設置的安全需求,但如果保存的設置不是非常敏感,則這可能會很小。否則,您將需要採取適當的措施來保護數據(SSL/TLS,salting/hashing密碼等)。
您在您的問題中特別提到了「網絡服務器」,因此我假定您有自己的服務器並且很樂意爲其編寫代碼(或願意學習如何)。這就是我編寫我自己的客戶端/服務器代碼的方式,它有很多優點,但如果您所做的只是保存一些設置,則可能會過度滿足您的需求。
隨着iOS 8 Apple推出了一個名爲CloudKit的簡化iCloud系統。它將一切與用戶的iCloud帳戶綁定在一起,設計起來非常簡單。如果你只是在同步一些簡單的設置,你可以使用CloudKit的鍵/值存儲來爲你處理。
CloudKit有一些缺點。存儲的數據是不透明的(例如,您將無法從Web應用程序或Android應用程序訪問它),僅限於iOS 8和更新的版本,如果您的應用程序非常,很受歡迎。但對於簡單的設置同步,這可能完全適合您的需求。
CloudKit定價(可能是免費給你):
https://developer.apple.com/icloud/documentation/cloudkit-storage/
約CloudKit WWDC視頻:
https://developer.apple.com/videos/wwdc/2014/?id=208
https://developer.apple.com/videos/wwdc/2014/?id=231
CloudKit設計指南:
CloudKit框架參考:
我希望這有助於。