我住在一个互联网不稳定的国家。如果我让 Chromium 以信息亭模式启动,并且没有互联网,它会显示一个空白页,并且永远不会再次尝试加载它(如果互联网在启动时可用,但在初始启动后断线,那么它会稍后重试)。
为了加载我的网站,我会加载一个本地网页,然后它会 ping 一个通用 API 来查明互联网是否已启动。一旦确认互联网已启动并运行,我就会加载所需的页面。该网站要求在重新启动之间保存 cookie。
但是我的测试表明,如果我打开了 kiosk 模式,并在 a 处打开了 chromium file://url...
,那么它就不会记住 cookie。如果我更改为实际的 url,那么它会记住 cookie。似乎我只能使用 kiosk 模式,或者不使用互联网页面加载器,如何同时获得两者?
以下是我当前的命令(已格式化以便于阅读):
chromium-browser
--kiosk
--disable-session-crashed-bubble
--disable-infobars
--user-data-dir=/home/pi/browser/
file:///home/pi/my_page_loader.html?fwd_url=https://www.mywebsite.com/
如何以 Kiosk 模式启动 Chrome 并加载文件 URL,并记住给定域或任何域的 cookie。
答案1
最后,不需要转发到所需的页面,而是可以在 JS 中调用window.close()
关闭浏览器,然后继续执行脚本,再次启动浏览器,但这次直接在 URL 上启动,以便存储 cookie:
chromium-browser --kiosk "file:///home/pi/my_page_loader.html?ping_url=https://www.myproject.com"
chromium-browser --kiosk --user-data-dir=/home/pi/kiosk/ "https://www.myproject.com"