Cordova/Phonegapアプリケーションをインストールするときに関数を呼び出したい(データベースを作成し、そこにレコードを挿入するため)。
実際、この関数を一度だけ実行したいだけです。
なにか提案を?
そのためにLocalStorageを使用できます:
document.addEventListener('deviceready', function()
{
if (typeof window.localStorage.getItem('firstTime') === 'undefined')
{
// Execute some code for the installation
// ...
window.localStorage.setItem('firstTime', 0);
}
});
Ivan's answer のように、効果的に 1 回実行するイベント リスナーを追加することは正しいですが、構文は少し異なる必要があります。
次のコードを実行する場合:
console.log("First time?");
console.log(window.localStorage.getItem('firstTime'));
console.log(typeof window.localStorage.getItem('firstTime'));
console.log(typeof window.localStorage.getItem('firstTime') === 'undefined');
Javascript コンソールに次のように表示されます。
First time?
null
object
false
さらに、Storage.getItem() の Mozilla ドキュメントには、存在しないキーが要求された場合に「null」を返すと書かれています。
戻り値
キーの値を含む DOMString 。キーが存在しない場合は、null が返されます。
したがって、これを機能させるには、次のコードを使用する必要がありました。
document.addEventListener('deviceready', function()
{
if (window.localStorage.getItem('firstTime') == null)
{
// Execute some code for the installation
// ...
window.localStorage.setItem('firstTime', 0);
}
});