【问题标题】:LocalStorage variable not persisting in Chromium Kiosk modeLocalStorage 变量未在 Chromium Kiosk 模式下持续存在
【发布时间】:2019-08-30 06:17:38
【问题描述】:

我有一个使用 localStorage 作为持久数据的方式运行良好的网络应用程序。就在最近,也许是由于更新?,Raspbian 上的 Chromium 已经决定 localStorage 不再是它想做的事情。我真的不知道如何保存数据。我只需要存储两个变量的值。我正在使用

的典型语法
localStorage.setItem(key, value)

当我关闭机器时,这些值消失了。我在一个实时项目中使用它,我迫切需要一种方法来让这些数据保持不变,但我不知道该怎么做。 SessionStorage 不会在关闭后持续存在。任何人都可以帮忙吗?供参考,铬版本为 65.0.3325.181

function grow(){
      currentZoom += 1;
      $("#content").css('font-size', currentZoom + 'px');
      $("#content").css('height', currentZoom + 'px');
      localStorage.setItem("storeSize", currentZoom);
      console.log("grow triggered");
  }


  function shrink(){
     currentZoom -= 1;
     $("#content").css('font-size', currentZoom + 'px');
     $("#content").css('height', currentZoom + 'px');
     localStorage.setItem("storeSize", currentZoom);
     console.log("shrink triggered");
  }

   function mirror(){
       $("testDisplay").addClass("mirror");
       localStorage.setItem("mirror", 1);
   }

【问题讨论】:

  • 您应该研究关闭机器电源对存储的影响。这会以某种方式刷新您的 chrome 数据吗?如果这是唯一一次发生,它似乎可能与关闭操作有关。您可以在此处了解您的数据存储位置:en.wikipedia.org/wiki/Web_storage
  • 我认为,除了 4 周前它工作正常。 pi 大部分时间都保持打开状态。几天前我让一位同事将其关闭,我们注意到数据没有保留。这只是意味着我们必须根据需要重新校准它。在我当地的办公室这不是问题,但我把这些分散开来了,我无法找到所有这些。
  • chrome 中没有任何会特别影响这一点的更改。根据文档可以清除数据的唯一方法是手动完成。我认为即使数据在浏览器更新时也会持续存在。我认为如果来源发生变化(如果你将你的 url 从 example.com 更改为 example1.com),它本身就会失效
  • 旁注 - 您可以使用加载到存储中的 cookie 添加辅助解决方案,以防再次发生这种情况,但请注意 cookie 确实会过期。有很多好的库可以做到这一点。
  • 正确。网址保持不变。它适用于普通铬。当 pi 启动时,有一个启动脚本运行此网页并自动将其设置为 kiosk 模式。这是一个非常基本的应用程序,所以这就是设置这种方式的原因。但在 kiosk 模式下所做的任何事情都不会持续到常规 Chromium,反之亦然。

标签: javascript cookies local-storage chromium kiosk


【解决方案1】:

发生的情况是 Chromium 默认情况下将配置文件和会话数据存储在临时文件夹中当以信息亭模式启动时有时,我不确定为什么,至少在系统重新启动时会清除此文件夹在 Raspbian 上,其他操作系统的行为可能会有所不同。有评论建议改用 cookie,但这在临时文件夹中也不起作用。

您可以将命令行参数传递给 Chromium,以便为配置文件数据使用不同的位置,这应该可以解决问题:

/usr/lib/chromium-browser/chromium-browser --kiosk --user-data-dir=/myprofilefolder/

记住要确保文件夹存在,并且相应的用户具有写入权限。

【讨论】:

  • 你确定吗?我花了几天时间寻找新的方法来配置我的设置,然后基本上从头开始重新设置,就像我第一次在全新安装的 raspbian 上一样,它与 js cookie 一起工作。我已经重新启动了几次,它保存了我的校准。请记住,该应用程序运行良好,直到我在这里发布我的问题时它随机停止而没有警告
  • 我确信这就是它在我的机器上的工作方式。也许 Raspbian 在重新启动时并不总是清除 /tmp/ 。尝试在 /tmp/ 中创建一个文件,重新启动,看看它是否在 cookie 停留时消失?
  • 我刚刚签入 /tmp 文件夹。我在设备上存储了一个名为“storeSize”的 cookie。甚至没有远程命名的文件。我应该使用 raspbian gui 而不是 ssh 来检查这个吗?是否有我需要知道更改 cookie 名称的散列系统?还是最新的 raspbian 发行版更改了文件的保存位置?
  • Cookie 存储在数据库文件中,因此您无法直接查看各个 Cookie,如果 Chromium 将配置文件存储在 tmp 中,它位于 tmp 中包含大量文件和子文件夹的隐藏文件夹中。但现在我无法通过从终端启动来重现,所以可能原因不是 kiosk 模式。
猜你喜欢
  • 2013-01-19
  • 2015-09-29
  • 2017-02-28
  • 2019-11-14
  • 2013-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
相关资源
最近更新 更多