PWA设置display:fullscreen在Windows端Chrome95不生效是什么原因?
问题原因及解决方案
- 版本适配差异:Chrome 桌面端对manifest.json中
display: fullscreen参数的正式完整支持是从Chrome 96版本开始的,你使用的Chrome 95版本仅将该特性作为实验性功能提供,需要手动开启chrome://flags/#web-app-fullscreen-displayflag后重启浏览器才能生效,默认状态下不支持该配置。而Android端Chrome更早实现了该参数的正式适配,因此出现两端表现不一致的问题。 - 高版本Chrome的额外限制:就算升级到Chrome 96及以上版本,Windows端还有两个可能导致全屏失效的场景:
- 如果你配置了
display_override参数,该参数的优先级高于display参数,如果display_override的取值包含standalone、browser等非fullscreen值,会覆盖你配置的全屏设置。 - Windows端PWA的桌面快捷方式默认不会追加全屏启动参数,你可以右键点击对应PWA的桌面快捷方式,选择「属性」,查看「目标」字段末尾是否有
--start-fullscreen参数,手动追加该参数后重启PWA即可生效。
- 如果你配置了
- 低版本兼容方案:如果需要兼容Chrome 95这类低版本桌面浏览器,可以通过JS API在获得用户交互后主动触发全屏,参考代码如下:
// 建议绑定到用户点击事件触发,避免浏览器的自动全屏拦截 const openFullscreen = () => { if (document.documentElement.requestFullscreen) { document.documentElement.requestFullscreen(); } else if (document.documentElement.webkitRequestFullscreen) { /* Safari */ document.documentElement.webkitRequestFullscreen(); } else if (document.documentElement.msRequestFullscreen) { /* IE11 */ document.documentElement.msRequestFullscreen(); } } // PWA启动完成后可弹出引导按钮,用户点击后调用上述方法
内容的提问来源于stack exchange,提问作者BulliedByModeratorsAgain_Again
相关产品推荐
相关产品推荐

