我使用Angular和Ionic创建了一个Android移动应用程序。我已经将它上传到1.0版本的playstore中。现在我要在playstore中更新我的应用程序。
当用户更新应用程序时,应清除localstorage。任何人都可以帮我前进吗?
每次安装时,我都要为我的应用清除localstorage。
答案 0 :(得分:5)
编辑: 在应用程序开头的某个地方:
FormInputComponent
编辑2: 您可以使用cordova插件自动获取应用版本: ngCordova
所以你可以使用$ cordovaAppVersio服务:
public user
答案 1 :(得分:0)
来自Android Documentation的快速参考。
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查询,然后创建表。
Ionic参考:
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)");
});
})
这个想法类似于Native实现(Drop and Recreate Table)。
如果您将此应用程序提交给Playstore,则所有接收更新的用户也将立即获得清理。