Phonegap如何在android上保存永久数据
Posted
技术标签:
【中文标题】Phonegap如何在android上保存永久数据【英文标题】:Phonegap how to save permanent data on android 【发布时间】:2012-11-25 13:11:54 【问题描述】:我正在寻找一种使用PhoneGap
永久保存数据的方法。
LocalStorage
文件 I/O
?
我听说LocalStorage
不是 100% 永久的,而是在胡同的某个地方。
我不太愿意从文件 I/O 开始,因为我需要创建一个包含食谱的数据库,并且它们需要保留。
“数字 3”是我要问的。有什么建议吗?
提前致谢:)
【问题讨论】:
【参考方案1】:您可以执行以下步骤来永久保存任何数据,
您的 html 文件
<div id="deviceready">
<div id="result"></div>
</div>
你的JS文件
window.onload = function()
document.addEventListener("deviceready", init, false);
function init()
document.getElementById("signin").addEventListener("submit",login, false);
function saveData()
window.localStorage.setItem("header", 'Some Text Here');
function getData()
document.getElementById("result").innerHTML =
window.localStorage.getItem("header");
【讨论】:
那么默认情况下,这个文件会存放在哪个文件夹?【参考方案2】:在 AppStore 中,当您发布应用的新版本时,所有存储在用户身上的数据都将被重置。在更新应用之前,您需要找到更好的数据存储方式。
【讨论】:
【参考方案3】:我正在使用本地存储,这是保存已保存数据的最佳解决方案。就像你说的,它不是 100% 永久的。就我而言,仅当您卸载应用程序时才会清除本地存储。使用 Phonegap 查找有关本地存储的更多信息 http://docs.phonegap.com/en/2.1.0/cordova_storage_storage.md.html#localStorage
您可以在以下位置获取有关本地存储的更多信息 http://diveintohtml5.info/storage.html
您也可以使用数据库。您可以在以下位置找到相关信息 http://docs.phonegap.com/en/2.1.0/cordova_storage_storage.md.html#openDatabase
【讨论】:
@A.Magalhães 如果您更改默认浏览器,本地存储数据不会被删除吗?我在这个帖子上看到了:***.com/questions/7750857/… 它将被删除。有关如何保存即使重新安装应用程序仍然存在的数据的说明,请参阅下面的答案。【参考方案4】:如果您希望将数据永久存储在设备上即使在应用被卸载后,您必须在 ios 和 android 上以不同的方式执行此操作。
在 iOS 上,您可以使用钥匙串 https://github.com/shazron/KeychainPlugin。
在 Android 上,您可以使用文件插件,并将数据存储在 SD 卡 (cordova.file.externalRootDirectory) 上。
在这两种情况下,即使用户重新安装应用,数据也会保留在设备上。
如果您使用的是 ionic(或只是 angular),您可以使用 ng-persist 将这两个插件包装在一个 angular 服务中,并为 ios 和 android 提供相同的 API。
更多详情在这里http://alexdisler.com/2014/04/23/persist-data-mobile-device-app-removed-uninstalled-cordova-ionic/
【讨论】:
以上是关于Phonegap如何在android上保存永久数据的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap 的 getPicture() 调用不会保存到 Android 手机上的图库
如何永久保存Android webview中的cookie?
PhoneGap Build - 如何将文件保存到移动设备?