2015-10-26 94 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

相关问题