【问题标题】:How to show UI Tour/Guide on first visit only如何仅在首次访问时显示 UI Tour/Guide
【发布时间】:2017-01-04 21:43:41
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我会推荐用户和页面之间的多对多关系,一旦用户访问特定页面,就会将一条记录添加到数据透视表中。

标签: javascript laravel user-interface view blade


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    • 我正在使用 Laravel Generators 创建我的数据透视表
    • 运行php artisan make:migration pagephp artisan make:migration:pivot pages users
    • 现在您可以执行$user->pages->contains($user); 并将返回值传递给您的视图。
    • 在页面显示指南/导览后运行 $user->pages()->attach($page);

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 不使用 localStorage 是否意味着每次用户更改浏览器/设备时都会显示指南/导览?
      • 回答您的问题。是的。或者,您可以通过 Shepherd 之旅将新用户发送到不同的路线。如果我理解正确,您正在尝试跟踪用户在登录后是否查看过特定页面。还有其他设计该表的方法,但我看不到查询该信息的方法。
      猜你喜欢
      • 2013-09-16
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多