如何仅在首次访问时显示 UI Tour/Guide

How to show UI Tour/Guide on first visit only

我正在使用 Laravel,但我想这是一个一般性的 UI/View 问题。 我想使用像 Shepherd 这样的库来展示用户 UI 的游览。我如何实现它以仅在第一次访问该页面时显示?

有没有比创建一个包含 user.id 和每页指南的 table 更好的解决方案?像这样:

------------------------------------------
| id | user_id | seen_page1 | seen_page2 |
------------------------------------------
|  1 |       5 |          0 |          0 |
------------------------------------------
|  2 |       6 |          1 |          0 |
------------------------------------------
...

我只关心每次访问时必须进行的额外查询。

是的,使用 localStorage 是一个选项。

if (!localStorage.getItem('viewed')){
   tour.start();  
   localStorage.setItem('viewed','yes');
    }

我最终使用了@MinaAbadir 的建议。以下是操作指南:

  • 我正在使用 Laravel Generators 创建我的支点 table
  • 运行 php artisan make:migration pagephp artisan make:migration:pivot pages users
  • 现在您可以 $user->pages->contains($user); 并将 return 值传递给您的视图。
  • 和 运行 $user->pages()->attach($page); 一旦 guide/tour 已显示页面

我觉得这比存储一整行 01 或将其存储在客户端要好。

聚会很晚了,但我写了一个简单的教程,介绍如何只显示一次游览。它的灵感来自@ryderpro 的回答(使用 localStorage),但它也可以考虑用户是否实际与游览互动(已完成或取消):How to Display Shepherd.js Only Once