2016-03-27 22 views
1

私はAngularとIonicを使用してAndroidモバイルアプリケーションを1つ作成しました。私はすでにバージョン1.0で動作しているプレイストアにアップロードしています。今私はプレイストアで私のアプリを更新するつもりです。Playstoreからアプリをアップデートするときにlocalstorageをクリアするにはどうすればよいですか?

ユーザーがアプリケーションを更新するときに、localstorageをクリーニングする必要があります。誰でも私を助けて前進することができますか?

インストールするたびに私のアプリケーションのlocalstorageをクリアします。

+0

ここで答えをチェックしてください:http://stackoverflow.com/questions/6912541/clear-data-in-android-using-coding –

答えて

2
  1. アプリにバージョンコード変数を追加します。
  2. アプリが起動するたびに、同じバージョンのコードが保存されている場合は、ローカルストレージを確認してください。一致した場合は、何も実行しないで、新しいコードをクリーンアップしてlocalstorageに保存します。

編集:どこかのアプリの先頭に :

/*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: あなたは自動的にアプリのバージョンを取得するにはコルドバのためのプラグインを使用することができますので、あなたが使用することができます ngCordova

を$ cordovaAppVersioサービス:

$cordovaAppVersion.getVersionNumber().then(function (version) { 
     // use version here 
     }); 
    }, false); 
+0

どうすればいいですか?間違いを私はthis.pls私にサンプルコード –

+0

私はplaystoreからバージョンの詳細を取得することができます私は新しいです。 –

+0

天才のアイデアだった!ありがとう+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 = 2onUpgrade()メソッドが呼び出され、deleteの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)"); 

}); 
}) 

アイデアはネイティブ実装(ドロップして再作成表)に類似しています。

このアプリをPlaystoreに送信すると、アップデートを受け取ったすべてのユーザーが即座にクリーンアップを取得します。

+0

イオンアングルを使用しています。 –

関連する問題