2015-10-26 3 views
1

Я создаю приложение с Meteor, и я ищу создать первый экран запуска пользователя - что-то вроде страницы «About/Welcome». По сути, что-то, что вытащило бы одноразовый экран после запуска приложения в первый раз и больше не появлялось; если пользователь уже открыл приложение, они будут перенаправлены на другую страницу.Обнаружение первого пользователя для приложения meteor

Я не использую учетные данные для входа, поэтому мне нужно другое решение, кроме проверки того, вошел ли пользователь в систему или нет.

Как я могу это настроить? Я пробовал искать по всему Интернету и не могу найти решение для этого. Обратите внимание, что это отличается от «Экран запуска».

+0

это немного трудно потому что они могут обычно очищать свои куки-файлы браузера и локальное хранилище - насколько это точно? – corvid

+0

Не обязательно быть супер точным. Просто хочу иметь одноразовый «учебник» типа экрана. –

+0

Возможный дубликат [Метеор: как показать страницу, когда пользователь подписывается] (http://stackoverflow.com/questions/32956291/meteor-how-do-i-show-a-page-when-a- user-sign-up) –

ответ

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

Смежные вопросы