2017-11-16 11 views
1

私はアプリケーションのキャッシュ内のプロパティを削除できるスクリプトを作成しましたが、このスクリプトをインストールするときにはこのスクリプトを1回だけ実行する必要があります応用。 誰かがアイデアを持って、感謝チタニウムアプリケーションのキャッシュを消去するスクリプトを置くことができるファイル

var executed = 0; 
if(executed === 0){ 
    Ti.App.Properties.removeProperty("My_Property"); 
    executed++; 
} 

答えて

1

を使用すると、アプリのセッション間でいくつかの値を保持することができる唯一の方法はTi.App.PropertiesまたはSQLデータベースです。したがって、以下の2つの方法で行うことができます。

解決策1:目的のプロパティを削除したことを知るために、別のプロパティを使用します。

// for first time installation, the default value (or 2nd parameter) will be false as you have not deleted the property yet 
var isDeleted = Ti.App.Properties.getBool('My_Property_Deleted', false); 

if (isDeleted) { 
    Ti.App.Properties.removeProperty("My_Property"); 

    // since you have deleted it, now set it to true so this 'if' block doesn't runs on any next app session 
    Ti.App.Properties.setBool('My_Property_Deleted', true); 

} else { 
    // you have already deleted the property, 'if' block won't run now 
} 

解決方法2:新しいデータベースまたはあなたのアプリとの事前ロードに出荷DBを作成します。

// Titanium will create it if it doesn't exists, or return a reference to it if it exists (after first call & after app install) 
var db = Ti.Database.open('your_db'); 

// create a new table to store properties states 
db.execute('CREATE TABLE IF NOT EXISTS deletedProperties(id INTEGER PRIMARY KEY, property_name TEXT);'); 

// query the database to know if it contains any row with the desired property name 
var result = db.execute('select * from deletedProperties where name=?', "My_Property"); 

if (result.rowCount == 0) { // means no property exists with such name 
    // first delete the desired property 
    Ti.App.Properties.removeProperty("My_Property"); 

    // insert this property name in table so it can be available to let you know you have deleted the desired property 
    db.execute('insert into deletedProperties(name) values(?)', "My_Property"); 

} else { 
    // you have already deleted the property, 'if' block won't run now 
} 

// never forget to close the database after no use of it 
db.close(); 

あり、同様に他の方法でもよいが、これらの2は、あなたが望むもののために動作します。 Read more about Ti.Database here

関連する問題