如何在 Raspberry Pi 上以 Kiosk 模式或全屏运行 Flutter 应用程序?

问题描述 投票:0回答:1

我尝试在 Raspberry Pi 4B 上以 kiosk 模式运行 Flutter 应用程序,但无法让它以全屏模式启动。

我已按照 Raspberry Pi Kiosk 模式教程中的说明设置 kiosk 模式,但这些步骤似乎更适合运行 Web 应用程序或网站,而不是独立的 Flutter 应用程序。尽管我尝试为我的 Flutter 应用程序调整这些说明,但它仍然无法以全屏模式打开。

以下是我采取的步骤: 安装必要的包:

sudo apt install wtype

使用 raspi-config 配置 Raspberry Pi 以启动至图形界面。

编辑 wayfire.ini 文件以自动启动我的 Flutter 应用程序:

sudo nano .config/wayfire.ini

将以下行添加到 [autostart] 部分:

    [autostart]
panel = wfrespawn wf-panel-pi
background = wfrespawn pcmanfm --desktop --profile LXDE-pi
xdg-autostart = lxsession-xdg-autostart
flutterapp = /home/downloads/mydemoapp --kiosk --noerrdialogs --disable-infobars --no-first-run --ozone-platform=wayland --enable-features=OverlayScrollbar --start-maximized
screensaver = f

我可以使用这些步骤自动启动我的应用程序,但它没有按照我的预期以全屏模式打开。有谁知道如何让我的 Flutter 应用程序在真正的信息亭模式下运行,或者至少在启动时全屏运行?

fullscreen pi kiosk
1个回答
0
投票

我认为这些标志是为 Chromium 浏览器设计的。

特别是“--kiosk --noerrdialogs --disable-infobars --no-first-run --ozone-platform=wayland --enable-features=OverlayScrollbar --start-maximized”

您必须在 Flutter 应用程序配置中以某种方式控制窗口状态。

不幸的是,我可能无法解决您的问题,因为我转而在 Linux 上使用 PyQt 而不是 Flutter。

不过,我确实从尝试 Kiosk 模式我的 Svelte web 应用程序中学到了很多东西,这些参数绝对是仅适用于 Chromium/chrome 浏览器的参数,不适用于其他 GUI 应用程序。

大多数 GUI 框架都有一种方法可以最小化、最大化或删除窗口中的标题栏和退出按钮。我确信您可以创建一个脚本来阻止其他输入以在 Flutter 的 dart 后端模拟 kiosk 模式,但您必须从头开始执行此操作,这与仅调用 Chromium 的 kiosk 模式的易用性不同。

© www.soinside.com 2019 - 2024. All rights reserved.