我的科爾多瓦應用程序將設置保存到本地文本文件。我正在使用Cordova文件插件來保存文件。在科爾多瓦獲取應用程序的安裝日期
當用戶在現有安裝中重新安裝應用程序時,我想要刪除原始設置文件。是否有可能做到這一點?
或者是否有辦法從新安裝中獲取唯一的密鑰或時間戳以爲新的設置文件創建唯一的文件名?
我的科爾多瓦應用程序將設置保存到本地文本文件。我正在使用Cordova文件插件來保存文件。在科爾多瓦獲取應用程序的安裝日期
當用戶在現有安裝中重新安裝應用程序時,我想要刪除原始設置文件。是否有可能做到這一點?
或者是否有辦法從新安裝中獲取唯一的密鑰或時間戳以爲新的設置文件創建唯一的文件名?
到目前爲止,我已經瞭解到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中,你可以得到首家推出日期
在應用程序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
}
而且你可以使用它們來唯一地標識的首選項文件。
以爲我必須走這條路。感謝代碼片段;很大的幫助。 – Fergal
你爲什麼不改變每次安裝文件的名字呢!假設在第一次安裝時你的文件名是file1.txt,並且你使用它來保存首選項,在下一個版本中,你可以將它命名爲file2.txt並將你的代碼改爲使用file2.txt。然後它不會使用以前的偏好。或者你可以保存文件的版本號。並在應用程序打開後檢查版本號是否匹配。如果匹配,則不執行任何操作,如果不匹配,則刪除該文件,然後使用新版本號創建新文件。 – AtanuCSE
謝謝,我已經考慮過這些選項,但問題是1)如果用戶重新安裝相同版本的應用程序,以及2)應用程序如何知道它是第一次運行,並且應該創建新的設置文件?如果可以確定,那麼我可以在第一次啓動時簡單地覆蓋現有的文件。 – Fergal