簡體   English   中英

如何檢測一天中首次啟動的應用

[英]How to detect app launched first time in a day

我有應用程序,只要它在一天中的第一時間啟動,就應該執行一些邏輯。 我已經在Google中簽到了,但是我沒有得到任何好的工作邏輯,如果有人知道這一點,請建議我。

到目前為止,我已經嘗試過使用此代碼

       var firstTime = new Date().getTime();
       if(window.localStorage.getItem('firstTime') == null){
            window.localStorage.setItem('firstTime', firstTime);
        }else{
            var secondTime = new Date().getTime();
            var storedTime = window.localStorage.getItem('firstTime');
            if(secondTime > storedTime){
                alert("Second time");
            }else{
                alert("First time");
            }
        }

注意在:

var firstTime = new Date().getTime();
if(window.localStorage.getItem('firstTime') == null){
    window.localStorage.setItem('firstTime', firstTime);

您存儲的數字代表當前時刻(以毫秒為單位)。 如果要開始新的一天,請先將小時數設置為零:

var firstTime = new Date().setHours(0,0,0,0);

現在執行邏輯,存儲時間值就可以了:

if (window.localStorage.getItem('firstTime') == null){
    window.localStorage.setItem('firstTime', firstTime);

在其他部分,您需要與一天中的另一個時間值進行比較,就像上面這樣:

} else {

  var storedTime = window.localStorage.getItem('firstTime');

  // Get a new date, zero it as above and see if its the same time
  // If not, it must be a different day
  var secondTime = new Date().setHours(0,0,0,0)

  if (secondTime != +firstTime) {
    alert("Second time is a different day");

  } else {
    alert("First time is the same day");
  }
}

而不是存儲new Date().getTime(); ,存儲new Date().getDate(); 並進行比較。 如果當前日期大於存儲的日期,則該應用程序在該天首次打開。 因此,您存儲此日期。 而且,當下次打開應用程序時,當前日期不會更長(它將是相等的),因此您會了解到這不是第一次。

注: getDate()只會給你的日期的部分。 例如,對於今天的日期(即10/03/2016),它將為您提供“ 10”。 因此,請同時加上幾個月,以使您的邏輯萬無一失。

這將像一種魅力一樣工作,感謝@camelcasecoder

       var firstTime = new Date().setHours(0,0,0,0);
        alert("firstTime "+firstTime);
        if (window.localStorage.getItem('firstLaunch') == null){
            window.localStorage.setItem('firstLaunch', firstTime);
            alert("At first time");
        } else {    
            var storedTime = window.localStorage.getItem('firstLaunch');
              // Get a new date, zero it as above and see if its the same time
              // If not, it must be a different day
            var secondTime = new Date().setHours(0,0,0,0)
            alert("secondTime "+secondTime);
            if (secondTime > storedTime) { 
                alert("First time in the day");
                window.localStorage.setItem('firstLaunch', secondTime); 
            } else { 
                alert("Second time in the same day"); 
            }
         } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM