Webサイト上のWebアプリとしてダッシュボードや広告スライドショーを作っていて、それを Windows のデジタルサイネージに表示する方法。
方法はいくつかあるが、結論として今回は、
「普通のWindows ユーザーを作って、キオスクモードオプションを指定した Chrome のショートカットをスタートアップに入れる」
という方法にした。
Windows では、「キオスクモードを設定する」とか「割り当てられたアクセス」とよばれる機能。
フルスクリーンで動作する、単一のアプリのみを起動するユーザーを作れる機能が Windows にすでにある。
機能的にはいちばんセキュアだが、Web サイトをキオスクにするのは難しい。
標準機能がいくつか用意されているのに難しい。
うってつけの機能が Windows 標準で用意されている。
キオスクモードのユーザー(割り当てられたアクセス) を作る際、Edge を選択すると、
起動時のURLはどこにするかとか、何分ごとにセッションをリセットするかとか聞いてくる。
だが、この機能は Edge が Chromium エンジンになってから、Edge 自体がキオスクモード内で起動できなくなったため使えない。
キオスクモード起動時に、「アプリを起動できませんでした。 Ctrl + Alt + Del 云々 0xffffffff 」というエラーメッセージだけの画面になり何もできない。
この問題のディスカッション:
https://docs.microsoft.com/en-us/answers/questions/204877/assigned-access-will-not-start.html
明快な解決方法も無いようだ。諦める。
キオスクモード用の、Kiosk Browser というアプリが WIndows のストアから提供されている。
これは、インストールされるとキオスクのユーザーで起動することができる。
ただし、初期URL の指定が難しい。
アプリをインストールしただけでは、初期URLを設定できない。
どうやって設定するかというと、
Kiosk Browser + Windows ADK (アセスメント & デプロイメントキット) の中に入ってる、イメージおよび構成デザイナー(ICD) というツールで作るらしい。設定を埋め込んだアプリ? か Windows イメージを作るもののようだ。
Download and install the Windows ADK
ちなみにツールは1GB ほどサイズがある上、構築が難しい。なんでweb を表示するだけなのにこんな手間をかけなければならないのかと思う。却下。
WebViewを使うだけなら、Kiosk Browser + イメージおよび構成デザイナ を使うより、C#, ザマリン, Electron, Flutter など使って WebViewだけのアプリをビルドした方がよっぽど簡単な気がする。今回はやってないが。
上記、A の「割り当てられたアクセス」のユーザーを作る方法よりよっぽど簡単。だが、普通のユーザーなので、アプリを閉じられたり、アプリがクラッシュして終了した場合、デスクトップにアクセスできたり別のアプリを起動することができる。そのためセキュリティは良くない。
目の届く範囲で、限られたユーザーで使う条件では問題無い。
Edge に「--kiosk <URL> --edge-kiosk-type=fullscreen
」オプションをつけて起動するとキオスクモードになる。引数に指定したURLが最大化されて表示される。
今回やりたかった機能。これで全く問題無い。
Edge のキオスクモードのその他のオプションの解説
Edgeのショートカットを作って、右クリックからプロパティを表示し、コマンドラインに上記オプションを追加。
Windows +R から shell:startup
と入力し、スタートアップフォルダを表示して上記ショートカットを入れる。
これでOK。
Alt+Tab などの機能でアプリを終了できてしまう。目の届く範囲で、しかもキーボードを使わないサイネージ等の用途であれば、問題なさそう。
ただし、アプリ終了時にクッキーが消える。なのでログインセッションを継続できない。
もしログイン必須のページであれば、Chrome を使ったほうが良い。
Chrome も、 --kiosk <URL>
でキオスクモード起動ができる。Edge と見た目はまったく一緒。
Chrome の場合は、終了して再度起動してもクッキーは消えないので、ログイン必須のページであれば Chrome の方が良い。
今回は、ログインしたページでデジタルサイネージがしたかったので、 キオスクモードオプションを指定した Chrome を スタートアップに入れる方法にした。
コメント