如何在应用打开时创建一次事件?

Posted

技术标签:

【中文标题】如何在应用打开时创建一次事件?【英文标题】: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 页。我在仪表板(我的应用程序主页)上调用此函数 【参考方案1】:

我建议你使用 sessionStorage:

function onDeviceReady()

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

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

【讨论】:

我试过你的代码。它不适合我。我的意思是当我点击不同的页面并再次点击仪表板时,该函数被调用。 再次尝试比较布尔字符串而不是像我编辑的答案中的干净布尔值

以上是关于如何在应用打开时创建一次事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何确保 MainActivity 只创建一次

如何在 C++ 中并行化一个 for 循环,只创建一次线程池

弹出窗口打开时如何传播 jQuery Mobile 事件?

如何使用自定义 tf.Estimator 在张量板事件文件中仅创建一份图形副本?

在 Cloud Firestore 中如何制作一个,只创建一次安全规则

如何让 OpenMP 在程序每次运行时只创建一次线程?