【问题标题】:How to create one time event when the app opens?如何在应用打开时创建一次事件?
【发布时间】:2014-10-17 11:51:46
【问题描述】:

我正在使用 phonegap 开发一款 iPhone 应用。 当用户打开应用程序并转到主页时,我想调用一个函数来将应用程序数据库与实时数据库同步。这个函数应该只被调用一次。也就是说,即使用户再次点击主页,该函数也不应该被调用,因为它已经被调用了。

我想在 onDeviceReady() 函数下调用这个函数。

   function onDeviceReady()
{
    if(test.called) {
        return false;
    }else{
         test();
    }
}

function test(){
 test.called = true;}

我使用了上面的概念,但是当我点击不同的页面然后点击主页时,该函数会再次被调用。即因为它刷新页面将值设置为false。

应用时我应该使用什么事件只调用一次函数?

【问题讨论】:

  • 是单页应用吗?编辑:可能不像你说的那样刷新。我建议将标志存储在 sessionStorage 中。
  • 没有。有 4 页。我在仪表板(我的应用程序主页)上调用此函数

标签: javascript jquery ios cordova


【解决方案1】:

我建议你使用 sessionStorage:

function onDeviceReady()
{
    if(sessionStorage.getItem("isSync") === "true") {
        return false;
    }else{
        test();
        sessionStorage.setItem("isSync", "true");
    }
}

只要浏览器打开,会话存储就会存储标志,只要您的 PhoneGap 应用程序打开。

【讨论】:

  • 我试过你的代码。它不适合我。我的意思是当我点击不同的页面并再次点击仪表板时,该函数被调用。
  • 再次尝试比较布尔字符串而不是像我编辑的答案中的干净布尔值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多