ChromeOS下PWA应用如何检测是否运行在Kiosk模式?
ChromeOS PWA检测Kiosk模式的实现方案
替代方案代码实现
PWA没有直接对应原ChromeOS应用isKioskSession的API,但可通过ChromeOS的企业级API实现检测,前提是你的PWA已通过Chrome Enterprise管理控制台配置为Kiosk应用:
- 在PWA的
manifest.json中添加权限:
{ "permissions": ["enterprise.deviceAttributes", "kiosk"] }
- 使用以下代码检测Kiosk模式:
async function isInKioskMode() { try { // 检测是否为自动启动的Kiosk应用 if (chrome.kiosk?.isAutoLaunchEnabled) { return true; } // 结合设备属性辅助验证 await chrome.enterprise.deviceAttributes.getDirectoryDeviceId(); return true; } catch (err) { // 无权限或非Kiosk环境返回false return false; } } // 调用检测逻辑 isInKioskMode().then(isKiosk => { if (isKiosk) { // 执行你的业务逻辑 } else { // 显示错误对话框 alert("此应用仅允许在Kiosk模式下运行"); } });
原官方文档内容翻译
chrome.app.runtime.onLaunched 事件
当应用启动时触发,传入的launchData对象包含isKioskSession属性:
isKioskSession: 布尔值,标识应用是否在Kiosk会话中启动。仅当应用被配置为Kiosk应用且在Kiosk模式下启动时,该值为true。
注:此API属于已弃用的ChromeOS应用平台,PWA无法直接复用,需改用上述企业级API方案。
内容的提问来源于stack exchange,提问作者Rushabh Shah
相关产品推荐
相关产品推荐

