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>
    

    &lt;/div&gt;

    你的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】:

如果您希望将数据永久存储在设备上即使在应用被卸载后,您必须在 iosandroid 上以不同的方式执行此操作。

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中刷新后保存输入数据

PhoneGap Build - 如何将文件保存到移动设备?

如何使用 Phonegap 在 Android 上嵌入 YouTube 视频

如何在phonegap上使用GCM处理android中的多个推送通知