首页 > 解决方案 > LocalStorage 变量未在 Chromium Kiosk 模式下持续存在

问题描述

我有一个使用 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);
   }

标签: javascriptcookieslocal-storagechromiumkiosk

解决方案


会发生什么情况是 Chromium 默认情况下在临时文件夹中存储配置文件和会话数据,有时在 kiosk 模式下启动时,我不知道为什么,这个文件夹在系统重新启动时被清除,至少在 Raspbian 上,其他操作系统可能会表现不同。一条评论建议改用 cookie,但这在临时文件夹中也不起作用。

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

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

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


推荐阅读