【问题标题】:Get the installation date of an app in Cordova在 Cordova 中获取应用程序的安装日期
【发布时间】:2014-08-09 09:51:03
【问题描述】:

我的 Cordova 应用程序将设置保存到本地文本文件。我正在使用 Cordova 文件插件来保存文件。

当用户通过现有安装重新安装应用时,我希望删除原始设置文件。可以这样做吗?

或者有没有办法从新安装中获取唯一的密钥或时间戳来为新的设置文件创建唯一的文件名?

【问题讨论】:

  • 那你为什么不在每次安装时更改文件名!!假设在第一次安装时您的文件名为 file1.txt,并且您使用它来保存首选项,在下一个版本中,您可以将其命名为 file2.txt 并将代码更改为使用 file2.txt。然后它不会使用以前的偏好。或者您可以使用文件保存版本号。并在应用打开后检查版本号是否匹配。如果匹配则不执行任何操作,如果不匹配则删除文件,并使用新版本号创建新文件。
  • 谢谢,我已经考虑了这些选项,但问题是 1)如果用户重新安装相同版本的应用程序,以及 2)应用程序如何知道它是第一次运行并且应该创建一个新的设置文件?如果可以确定,那么我可以在第一次启动时简单地覆盖现有文件。

标签: android ios cordova


【解决方案1】:

到目前为止,我了解到 phonegap 没有这种方法来获取安装日期/时间。您需要编写依赖于平台的代码并找到调用它们的方法。您还可以编写一个插件来在 native 和 cordova 之间进行通信。

在android中你可以获得安装时间LINK

PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name", 0);
String appFile = appInfo.sourceDir;
long installed = new File(appFile).lastModified(); //Epoch Time

在 ios 中,您可以获得 FIRST LAUNCH 日期

在应用程序中 didFinishLaunchingWithOptions

NSDate *date =[[NSUserDefaults standardUserDefaults]objectForKey:@"FirstLaunchTime"];
if (date == nil) {
     // nil means your application running for the first time
    [[NSUserDefaults standardUserDefaults]setObject:[NSDate date] forKey:@"FirstLaunchTime"]; // set the current time
}

您可以使用它们来唯一标识首选项文件。

【讨论】:

  • 以为我必须走这条路。感谢代码 sn-p;很大的帮助。
  • @Fergal 我知道这是古董,但你能分享你的解决方案吗?我需要知道我的应用程序是否也已重新安装……发现卸载应用程序时 Android 并不总是删除 localStorage,如果我要启动“全新”安装,我需要手动执行此操作。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 2022-07-27
  • 1970-01-01
  • 2017-08-27
相关资源
最近更新 更多