我正在開發一個應用程序,使用運行cordova的離子框架,並且需要我在用戶設備(Android/iOS)本地存儲(例如SD ),我無法使用localStorage離子框架保存它,因爲它將數據保存在緩存中。用Ionicframework創建本地存儲(設備,而不是緩存)
在其他人中,我需要我的數據在設備上堅持很長一段時間。
我還有什麼其他解決方案?
我正在開發一個應用程序,使用運行cordova的離子框架,並且需要我在用戶設備(Android/iOS)本地存儲(例如SD ),我無法使用localStorage離子框架保存它,因爲它將數據保存在緩存中。用Ionicframework創建本地存儲(設備,而不是緩存)
在其他人中,我需要我的數據在設備上堅持很長一段時間。
我還有什麼其他解決方案?
HTML5 網絡存儲(即localStorage)並不總是一個不好的選擇。這是一個廣泛支持的現成的關鍵值存儲。並且不,它不會在存儲器中存儲,正好是,即localStorage中的數據不會到期也不會被隨機擦除。但是是一個有限和低優先級的存儲,從平臺到平臺的具體細節各不相同。
這就是說,我們有以下更可靠的替代品,這依賴於你正在嘗試存儲:
本地的SQLite - 作爲科爾多瓦的應用程序,你的應用程序可以訪問創建和通過第三方SQLite Plugin使用原生SQLite數據庫,就像原生移動應用程序一樣。從JavaScript開始,您可以像訪問Cordova之外的WebSQL一樣訪問數據。離子/ ngCordova幫助這裏提供實用的包裝圍繞SQLite的插件:$ cordovaSQLite
本地文件系統 - 作爲科爾多瓦的應用程序,你的應用程序可以訪問本地文件存儲(也,在Android上的SD卡上,如果這是用戶存儲應用程序的容器的地方)通過標準File Plugin。此外,離子提供它周圍的公用包裝與許多有用的功能:$ cordovaFile(檢查ngcordova.com/docs/plugins/)
IndexedDB的也是這裏值得一提。不是原生的移動解決方案,但是這個noSQL存儲正在迅速成爲大型可靠瀏覽器端存儲的標準,標誌着WebSQL已經過時。但是,iOS網絡視圖對IndexedDB提供了錯誤和不完整的支持(caniuse.com/#search=indexeddb)
根據您要存儲的數據是什麼來選擇您的解決方案。爲了存儲應用程序數據,我使用Native SQLite(用於結構化數據)和localStorage(用於關鍵值數據,主要是UI首選項)的組合。爲了存儲資源,總是有文件系統。
http://www.html5rocks.com/en/tutorials/offline/storage/可能會有所幫助。 – Phonolog
@Phonolog這樣我仍然會在瀏覽器上使用緩存,但它仍然緩存:/ – xRed
這幾乎是對不同的可能性持久化數據的概述,如果你想寫入文件系統/ sd卡的用戶,請參閱[本節](http://www.html5rocks.com/en/tutorials/offline/storage/#file-access)。 – Phonolog