0

Cordova/Phonegapアプリケーションをインストールするときに関数を呼び出したい(データベースを作成し、そこにレコードを挿入するため)。

実際、この関数を一度だけ実行したいだけです。

なにか提案を?

4

2 に答える 2

3

そのためにLocalStorageを使用できます:

document.addEventListener('deviceready', function()
{
    if (typeof window.localStorage.getItem('firstTime') === 'undefined')
    {
        // Execute some code for the installation
        // ...

        window.localStorage.setItem('firstTime', 0);
    }
});
于 2015-06-10T18:16:41.193 に答える
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);
    }
});
于 2016-02-23T00:25:51.773 に答える