uni-app的H5适配全面屏

举报
薛定喵君 发表于 2021/07/13 18:04:38 2021/07/13
【摘要】 记录一下如何在用uni-app开发h5时适配全面屏最近用uni-app开发h5应用时,需要适配全面屏,所以查阅相关资料,将修改涉及到的一些注意点分享一下。 适用场景页面带有操作按钮,例如「确定」、「提交」、「删除」之类,操作按钮需要置底显示的情况。如下图:可以看到在页面底部的 home indicator 横条与操作按钮重叠了。 解决方法主要方法就是需要判断当前是否是全面屏然后为底部操作栏增...

记录一下如何在用uni-app开发h5时适配全面屏

最近用uni-app开发h5应用时,需要适配全面屏,所以查阅相关资料,将修改涉及到的一些注意点分享一下。

适用场景

页面带有操作按钮,例如「确定」、「提交」、「删除」之类,操作按钮需要置底显示的情况。
如下图:
image.png

可以看到在页面底部的 home indicator 横条与操作按钮重叠了。

解决方法

主要方法就是需要判断当前是否是全面屏然后为底部操作栏增加相应的样式。

那么如何判断是否是全面屏呢?

我们可以在uni-app项目的公用函数里添加一段js来判断


function() {
    let isFullScreen = false
    const rate = window.screen.height / window.screen.width;
    let limit =  window.screen.height == window.screen.availHeight ? 1.8 : 1.65; // 临界判断值   
    // window.screen.height为屏幕高度
    // window.screen.availHeight 为浏览器 可用高度
    if (rate > limit) {
        isFullScreen = true;
    }
    return isFullScreen
}

在需要判断全面屏的页面引入工具函数之后使用即可:
例如 util.js


<template>
    <view>
        ...
        <view class="buttom-box" :class="{'full-screen':isFullScreen}">
            <view class="flow-button">
                <button class="btn-same btn-submit" @tap="submit" :disabled="disabled"
                    hover-class="com-hover-btn">发布</button>
            </view>
        </view>
        ...
    </view>
</template>

<script>
import helper from '@/common/js/util.js'
export default {
    data() {
        return {
            isFullScreen: helper.checkFullScreen()
        }
    }
}
</script>

当然我们也可以在app初始化的时候就进行判断然后存入全局变量,例如 localstorage、vuex(刷新之后就不行了)等等,这里不再展开了。

示例效果:
image.png

相关属性说明

  • window.screen.availWidth:声明了显示浏览器的屏幕的可用宽度,以像素计。在 Windows 这样的操作系统中,这个可用高度不包括分配给半永久特性(如屏幕底部的任务栏)的垂直空间。
  • window.screen.availHeight:声明了显示浏览器的屏幕的可用高度,以像素计。在 Windows 这样的操作系统中,这个可用高度不包括分配给半永久特性(如屏幕底部的任务栏)的垂直空间。
  • window.screen.width:声明了显示浏览器的屏幕的宽度,以像素计。
  • window.screen.height:声明了显示浏览器的屏幕的高度,以像素计。

参考资料

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。