当我从Playstore更新应用程序时,如何清除localstorage?

时间:2016-03-27 11:41:27

标签: android angularjs ionic-framework

我使用Angular和Ionic创建了一个Android移动应用程序。我已经将它上传到1.0版本的playstore中。现在我要在playstore中更新我的应用程序。

当用户更新应用程序时,应清除localstorage。任何人都可以帮我前进吗?

每次安装时,我都要为我的应用清除localstorage。

2 个答案:

答案 0 :(得分:5)

  1. 将版本代码变量添加到您的应用中。
  2. 每次应用启动时,如果保存了相同的版本代码,请检查本地存储。如果匹配则不执行任何操作,否则执行清理并将新代码保存到localstorage。
  3. 编辑: 在应用程序开头的某个地方:

    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,则所有接收更新的用户也将立即获得清理。