2015-10-26 90 views
1

我正在構建一個應用程序Meteor,我正在創建第一次用戶啓動屏幕 - 類似於「關於/歡迎」頁面。本質上來說,這是第一次啓動應用程序之後會拉出一次性屏幕並且再也不會出現的東西;如果用戶已經打開應用程序,他們將被引導到另一個頁面。檢測流星應用程序的第一次用戶

我沒有使用登錄憑據,所以我需要一個不同的解決方案,而不是檢查用戶是否登錄。

我該如何去配置這個?我試圖搜索整個網絡,似乎無法找到解決方案。請注意,這與「啓動屏幕」不同。

+0

這是一個有點硬因爲他們通常可以清除瀏覽器cookie和本地存儲 - 它的準確程度如何? – corvid

+0

它不需要超級準確。只是希望有一次性的「教程」類型的屏幕。 –

+0

[流星:如何在用戶註冊時顯示頁面](http://stackoverflow.com/questions/32956291/meteor-how-do-i-show-a-page-when-a-用戶註冊) –

回答

1

您將需要使用localstorage或設置cookie。

我建議先嚐試localstorage。上有atmosphere幾個包,應該幫助,

使用frozeman:存儲包(meteorpad example):

Template.body.helpers({ 
    beenHereBefore: function() { 
    var beenHereBefore = LocalStore.get('BeenHereBefore', {reactive: false}); 
    console.log(LocalStore.get('BeenHereBefore', {reactive: false})); 
    if (beenHereBefore !== true){ 
     LocalStore.set('BeenHereBefore', true, {reactive: false}) 

     console.log(LocalStore.get('BeenHereBefore', {reactive: false})); 
    } 
    return beenHereBefore; 
    }, 
}); 


<body> 
    {{#unless beenHereBefore}} 
    <h1> Welcome first time visitor! </h1> 
    {{else}} 
    <div class="outer"> 
     <div class="logo"></div> 
     <h1 class="title">Leaderboard</h1> 
     <div class="subtitle">Select a scientist to give them points</div> 
     {{> leaderboard}} 
    </div> 
    {{/unless}} 
</body> 
+0

這是可行的!非常感謝!! :) –

0

只是一些簡單的JavaScript應該做的伎倆:

if (Boolean(localStorage.getItem('visitedApp'))) { 
    // user's been here before 
} else { 
    // do stuff for first time user 
    localStorage.setItem('visitedApp', true); 
} 
+0

試過這個,似乎沒有工作... :( 我添加到客戶端的一個js文件。 –

+0

那麼,它不能只是在一個文件本身。它必須在正確的地方在你的代碼會檢查一個用戶是否是新的(這個部分取決於你,因爲我看不到你所有的代碼,我不知道它在哪裏) – ffxsam

+0

這可能會出現在'onRendered'回調中您的佈局模板。 – ffxsam

相關問題