Cocos Creator 中关于移动端 Web 应用全屏模式的兼容性优化
在 Cocos Creator 3.8.4 版本中,开发者在使用浏览器预览功能时可能会注意到 Chrome 控制台输出的一个警告信息,提示apple-mobile-web-app-capable元标签已被弃用。这个问题涉及到移动端 Web 应用全屏模式的兼容性设置,值得开发者关注。
问题背景
移动端 Web 开发中,我们经常需要控制应用是否以全屏模式运行。传统上,iOS 设备上的 Safari 浏览器使用apple-mobile-web-app-capable元标签来实现这一功能,而 Chrome 浏览器则推荐使用更通用的mobile-web-app-capable标签。
在 Cocos Creator 的模板文件中,包括web-desktop/index.ejs、web-mobile/index.ejs和fb-instant-games/index.ejs,目前都只使用了apple-mobile-web-app-capable这一特定于苹果的标签,这导致了在 Chrome 浏览器中运行时出现弃用警告。
技术分析
这两个元标签的作用都是控制 Web 应用是否以全屏模式运行:
apple-mobile-web-app-capable:苹果 Safari 浏览器专用,控制是否隐藏浏览器 UI 元素mobile-web-app-capable:Chrome 等现代浏览器支持的通用标准
虽然警告信息称前者已被弃用,但实际上目前 Safari 仍然只识别这个特定标签。而 Chrome 则建议使用后者,但也能兼容前者。一些非官方资料表明,Safari 可能也开始支持通用标签。
解决方案
Cocos Creator 开发团队决定在 3.8.5 版本中采用最稳妥的兼容方案:同时保留两个标签。这样既能确保在 Safari 上的兼容性,又能消除 Chrome 的警告信息。
具体实现方式是在模板文件中同时包含:
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
这种方案相比完全替换有以下优势:
- 确保向后兼容,不影响现有 iOS 设备上的表现
- 符合现代浏览器的标准
- 避免因浏览器实现差异导致的功能缺失
开发者注意事项
对于使用 Cocos Creator 开发移动端 Web 应用的开发者,需要注意:
- 如果自定义了项目模板,建议手动添加这两个标签
- 全屏模式在不同平台上的表现可能仍有差异,需要进行充分测试
- 某些浏览器可能对全屏模式有额外的权限要求
这个优化虽然看似简单,但对于提升跨平台 Web 应用的兼容性和用户体验有着重要意义,体现了 Cocos Creator 团队对细节的关注和对开发者体验的重视。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C0131
let_datasetLET数据集 基于全尺寸人形机器人 Kuavo 4 Pro 采集,涵盖多场景、多类型操作的真实世界多任务数据。面向机器人操作、移动与交互任务,支持真实环境下的可扩展机器人学习00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python059
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
AgentCPM-ReportAgentCPM-Report是由THUNLP、中国人民大学RUCBM和ModelBest联合开发的开源大语言模型智能体。它基于MiniCPM4.1 80亿参数基座模型构建,接收用户指令作为输入,可自主生成长篇报告。Python00