我制作了一个使用Angular和Ionic的Android移动应用程序。我已经将其上传到Playstore,并且运行版本为1.0。现在我要在Playstore上更新我的应用程序。
当用户更新应用程序时,本地存储应该被清除。有人能帮我吗?
我想在每次安装我的应用程序时清除本地存储。
当用户更新应用程序时,本地存储应该被清除。有人能帮我吗?
我想在每次安装我的应用程序时清除本地存储。
编辑: 在您的应用程序开头的某个位置:
/*your currnt app version,
you should manually update it here*/
var version = "200";
/*get version code stored in localstorage*/
var savedAppVersion = localStorage.getItem("version");
/*if there is one check if it is the same*/
if (savedAppVersion && savedAppVersion === version) {
// do nothing
} else {
/*clear all local storage*/
localStorage.clear();
/*save new code to ls*/
localStorage.setItem("version", version);
}
编辑2:
你可以使用cordova插件自动获取应用程序版本:
ngCordova因此,您可以使用$cordovaAppVersion服务:
$cordovaAppVersion.getVersionNumber().then(function (version) {
// use version here
});
}, false);
来自Android文档的快速参考。
public class FeedReaderDbHelper extends SQLiteOpenHelper {
// If you change the database schema, you must increment the database version.
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "FeedReader.db";
public FeedReaderDbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_ENTRIES);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// This database is only a cache for online data, so its upgrade policy is
// to simply to discard the data and start over
db.execSQL(SQL_DELETE_ENTRIES);
onCreate(db);
}
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
}
DATABASE_VERSION
增加1,例如DATABASE_VERSION = 2
,将调用onUpgrade()
方法,然后调用SQL查询以删除表,接着创建新表。angular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'ngCordova'])
//inject $crodovaSQLite
.run(function($ionicPlatform, $cordovaSQLite, $rootScope) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleLightContent();
}
$rootScope.db = $cordovaSQLite.openDB("my.db");
$cordovaSQLite.execute(db, "DROP TABLE IF EXISTS joke");
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS joke(id integer primary key, joke text)");
});
})
这个想法类似于本地实现(删除并重新创建表)。
如果您将此应用提交到Play商店,所有接收更新的用户也将立即获得清理。