H5小游戏iphoneX(安全区、刘海)屏幕适配

2023-11-03 02:10

本文主要是介绍H5小游戏iphoneX(安全区、刘海)屏幕适配,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

全屏H5网页和小游戏解决方法

1、方法及其简单,只需在html文件的头部viewport行加入viewport-fit=cover即可。
截图展示如下(因没有H5网页项目,这里暂用cocoscreator代替,但解决方式是一样的。):
在这里插入图片描述
可复制粘贴代码如下:

<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,user-scalable=no,viewport-fit=cover">

普通H5网页iphoneX底部刘海屏适配至此,问题解决完毕。

补充 @半世 2020/10/27
最近又开发了一款放到直播间的全屏小游戏,发现一个奇怪的问题,iphoneX的屏幕适配失败了!!!用的方法跟之前设配成功的方式一样,在index.html里面加入 viewport-fit=cover 。不信邪的我把之前那个适配成功的小游戏,拿出来在ihponeX的设备上再跑一次,发现也失败了!!!做ios同事的同款手机,时而适配成功时而失败。具体解决方式,待寻找解决之道。
追更 @半世 2020/11/09
刚做完一个全屏的小游戏,用了最新的creator版本v2.4.2,因为里面新添加了安全区适配组件SafeArea,悲催的是web端的小游戏使用该组件后并没有起到任何效果,游戏并没有绘制到手机的安全区区域内,随后通过API文档接口,了解到:
在这里插入图片描述

个人适配想法

根据半屏小游戏适配成功的经验,web端全屏小游戏的异型屏幕适配,我设想,如果ios原生开发人员将webview的高度增加34pt,并同时将webview位置下移34pt,这样从视觉上可以变相的解决安全区域适配。同理,如果想适配顶部的刘海区域,则可以再将webview高度增加34pt,则游戏的可绘制区域则从视觉上显示为全屏渲染。但,公司开发人员,并不是很想用这种方式,所以这个设想未经实际验证,需要你们去试试,成功了麻烦留言告诉我一下。

追加
以上想法,公司ios开发已验证成功,webview高度增加了3个安全区的高度,即102pt。因苹果屏幕的坐标系远点在左上角,所以webview的位置要往上移动68pt即可。适配后的游戏在安全区域显示如下:
在这里插入图片描述

非全屏H5小游戏iphoneX底部安全区适配解决方法

备注:我这里用的是cocoscreator v2.1.2版本

背景

往app直播间内弹半屏性质的小游戏。

解决步骤

1、creator里面勾选Fit Width适配宽度,切记Fit Height适配不要勾选。

2、通过步骤1我们已经解决了小游戏宽度方面的完美适配,下面只要专心解决高度方面的适配即可。

3、其实这个问题也比较简单,在场景创建时,如果设计宽高高度是750X576,那么请加上iphoneX安全区的高度34pt,但是在我们前端要加上68px(原生的2倍),也就是canvas的宽高更改为750X644。并且,在场景搭建时,尽量给每个节点加上wedget组件,同时选择顶部对齐,就是750X576的设计分辨率去排版即可。场景底部多余出来的68px,只需把背景图拉伸铺满即可,至此前端这边要做的事情就做完了。

4、IOS这边要把app内嵌webview的Iphonex的安全区给关掉,同时弹出的webview高度要是加上安全区的高度来弹即可。这样子,在ihopnex上面显示时,游戏背景会把安全区给铺满,同时在其他机型上会因webview的高度不足和游戏设计时的顶部对齐,而把游戏场景底部多出的68px给自动裁掉显示。
至此,适配完成。

这篇关于H5小游戏iphoneX(安全区、刘海)屏幕适配的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/334841

相关文章

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Python利用自带模块实现屏幕像素高效操作

《Python利用自带模块实现屏幕像素高效操作》这篇文章主要为大家详细介绍了Python如何利用自带模块实现屏幕像素高效操作,文中的示例代码讲解详,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、获取屏幕放缩比例2、获取屏幕指定坐标处像素颜色3、一个简单的使用案例4、总结1、获取屏幕放缩比例from

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

H5漂流瓶社交系统源码

一个非常有创意的H5漂流瓶社交系统源码,带完整前端h5和后台管理系统。 环境:Nginx 1.20.1-MySQL 5.6.50-PHP-7.3 代码下载

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

鸿蒙开发5.0【Picker的受限权限适配方案】

Picker由系统独立进程实现,应用可以通过拉起Picker组件,用户在Picker上选择对应的资源(如图片、文档等),应用可以获取Picker返回的结果。 类型受限权限使用的picker音频ohos.permission.READ_AUDIO,ohos.permission.WRITE_AUDIOAudioViewPicker文件ohos.permission.READ_DOCUMENT,oh