5 <p>Kiosk Apps are Chrome Apps that are designed to always run fullscreen using
<a
6 href=
"https://support.google.com/chromebook/answer/3134673">Single App Kiosk Mode
</a>
7 on Chrome OS and do not allow the user to exit
8 the app. They're great for a purpose-built Chrome device, such as a guest
9 registration desk, a library catalog station, or a point-of-sale system in a store.
</p>
11 <p>A Kiosk App can be launched manually or set to automatically launch when the
12 device boots up. You can use a Chrome device as a kiosk by turning on Single App Kiosk mode
<a
13 href=
"https://support.google.com/chromebook/answer/3134673">manually for each device
</a>,
14 or across multiple devices using the
<a
15 href=
"https://support.google.com/chrome/a/answer/3017014">Chrome management console
</a>.
</p>
17 <iframe width=
"560" height=
"315" src=
"//www.youtube.com/embed/aGvFbBt-LNA?autohide=1"
18 frameborder=
"0" allowfullscreen
></iframe>
21 <h2 id=
"Look">How they look
</h2>
23 <p>Once the Kiosk App starts, the user experience is dedicated to the tasks defined by the app. The
24 app does not look like the traditional Chrome browser: there is no window frame, no Omnibox
25 (address bar), no tab strip, and no other browser interface elements. So as a developer, every
26 pixel of the screen is yours to use as you wish.
</p>
29 <h2 id=
"Behavior">How they behave
</h2>
31 <p>When a Kiosk App is configured to run on Chrome OS using
<a href=
32 "https://support.google.com/chromebook/answer/3134673">Single App Kiosk Mode
</a>, the user
33 has no control over the app’s lifecycle. The user cannot exit the app or switch to another task.
34 However, as an app developer, you can offer a
"logout" or
"exit"
35 button within the app to close all its windows, which terminates the session and returns
36 the user to the login screen.
</p>
38 <p>Single App Kiosk Mode optimizes bandwidth use and speed by downloading and installing the app so
39 it can launch each time without installation delays. Each time a Kiosk App launches, the system
40 checks for updates in the Chrome Web Store to ensure that the latest app version is installed,
41 unless the app is set to be
<a href=
42 "https://developer.chrome.com/apps/manifest/offline_enabled">enabled offline
</a>. Thereafter, the
43 system checks for updates every five hours and installs the update if available. If the device is
44 offline, the update is rescheduled to a later time when the app is back online.
</p>
46 <p>Any data the app stores using the
<a href=
47 "https://developer.chrome.com/apps/fileSystem">FileSystem
</a> API persists across executions of the
48 app, allowing you to download and cache any assets your app may need while offline. As a developer,
49 you need to ensure that user data is stored locally while offline, then synced to your data server
50 once online (see
<a href=
"https://developer.chrome.com/apps/offline_apps.html">Offline
53 <p>Once the app is installed, it is available to anyone who walks up to the Chrome OS device. There
54 is no need for users to log in before using Single App Kiosk Mode.
</p>
58 <h2 id=
"Develop">How to develop a Kiosk App
</h2>
60 <p>If you know how to build a
<a href=
"https://developer.chrome.com/apps/about_apps">Chrome App
</a>,
61 then you know how to build a Kiosk App because they use
62 the same
<a href=
"https://developer.chrome.com/apps/app_architecture">app architecture
</a>. All you
63 have to do is set
<code>"kiosk_enabled"</code> to
<code>true
</code> in your app’s
<a href=
64 "https://developer.chrome.com/apps/manifest">manifest file
</a>. Your app can then run in either
65 a regular session or Single App Kiosk Mode. If you want your app
66 to run in Single App Kiosk Mode only, then also set
<code>"kiosk_only"</code> to
<code>true
</code>.
67 This prevents the app from being launched in a regular session. For example:
</p>
73 "scripts" : [
"background.js"]
76 "manifest_version" :
2,
77 "name" :
"My Kiosk App",
82 "kiosk_enabled" : true,
87 <p>To determine whether the app is being run in a regular session or Single App Kiosk Mode, you can
88 inspect the
<code>isKioskSession
</code> boolean that's included in the
<code>launchData
</code>
89 object from the
<a href=
90 "https://developer.chrome.com/apps/app_runtime#event-onLaunched">app.runtime.onLaunched
</a>
93 <p>If you want to monetize your app, your app must handle all payment logic. You cannot monetize a
94 Kiosk App through the
<a href=
"https://developer.chrome.com/webstore/money">Chrome web store
98 <h3 id=
"Samples">Sample apps
</h3>
102 "https://github.com/KioskApps/InfoHub"
103 >LiveStream/Interactive display app
</a></li>
105 "https://github.com/KioskApps/SalesPoint"
106 >Point of sale app
</a></li>
108 "https://github.com/KioskApps/QuickTicket"
109 >Movie theater app
</a></li>
111 "https://chrome.google.com/webstore/category/collection/kiosk-apps"
112 >Kiosk apps in the Chrome Web Store
</a></li>