【问题标题】:Detect first time user for meteor app检测流星应用程序的首次用户
【发布时间】:2016-01-26 04:22:15
【问题描述】:

我正在使用Meteor 构建一个应用程序,并且我希望创建一个首次用户启动屏幕——类似于“关于/欢迎”页面。本质上,在第一次启动应用程序后会拉一次屏幕并且永远不会再次出现的东西;如果用户已经打开了应用程序,他们将被定向到另一个页面。

我没有使用登录凭据,因此我需要一个不同于检查用户是否登录的解决方案。

我将如何进行配置?我已经尝试在整个网络上进行搜索,但似乎无法找到解决方案。请注意,这与“启动屏幕”不同。

【问题讨论】:

  • 这有点困难,因为他们通常可以清除浏览器 cookie 和本地存储——它必须有多准确?
  • 它不需要非常准确。只是希望有一个一次性的“教程”类型的屏幕。

标签: android ios meteor


【解决方案1】:

您将需要使用本地存储或设置 cookie。

我建议先尝试本地存储。 atmosphere 上有几个包应该会有所帮助,

使用 frozeman:storage 包 (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>

【讨论】:

    【解决方案2】:

    只需一些简单的 JavaScript 就可以解决问题:

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

    【讨论】:

    • 试过了,似乎没有用... :(我在客户端添加了一个js文件。
    • 好吧,它不能单独存在于一个文件中。它必须在您的代码中的正确位置检查用户是否是新用户(这部分取决于您,因为我看不到您的所有代码,我不知道它的去向)。
    • 这可能会出现在您的布局模板的onRendered 回调中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    相关资源
    最近更新 更多