当前位置:首页 > uni-app

uniapp 网页全屏

2026-03-05 02:27:49uni-app

uniapp 实现网页全屏的方法

在uniapp中实现网页全屏功能,可以通过调用HTML5的全屏API或结合uniapp的API实现跨平台适配。以下是具体实现方式:

使用HTML5全屏API

在H5环境下,可以通过document.documentElement.requestFullscreen()触发全屏,需注意浏览器兼容性:

uniapp 网页全屏

// 进入全屏
function enterFullscreen() {
    const element = document.documentElement;
    if (element.requestFullscreen) {
        element.requestFullscreen();
    } else if (element.webkitRequestFullscreen) { // Safari
        element.webkitRequestFullscreen();
    } else if (element.msRequestFullscreen) { // IE11
        element.msRequestFullscreen();
    }
}

// 退出全屏
function exitFullscreen() {
    if (document.exitFullscreen) {
        document.exitFullscreen();
    } else if (document.webkitExitFullscreen) { // Safari
        document.webkitExitFullscreen();
    } else if (document.msExitFullscreen) { // IE11
        document.msExitFullscreen();
    }
}

跨平台适配方案

在uniapp中,可通过条件编译区分平台。例如在H5中使用HTML5 API,其他平台调用原生能力:

uniapp 网页全屏

// #ifdef H5
enterFullscreen(); // 调用上述H5全屏方法
// #endif

// #ifdef APP-PLUS
plus.navigator.setFullscreen(true); // 安卓/iOS原生全屏
// #endif

监听全屏状态变化

通过fullscreenchange事件监听全屏状态:

document.addEventListener('fullscreenchange', handleFullscreenChange);
document.addEventListener('webkitfullscreenchange', handleFullscreenChange); // Safari
document.addEventListener('msfullscreenchange', handleFullscreenChange); // IE

function handleFullscreenChange() {
    const isFullscreen = document.fullscreenElement || 
                        document.webkitFullscreenElement || 
                        document.msFullscreenElement;
    console.log('当前全屏状态:', isFullscreen ? '全屏中' : '已退出');
}

注意事项

  • 用户交互触发:浏览器安全策略要求全屏操作必须由用户手势(如点击)触发,不能直接通过代码自动调用。
  • CSS适配:全屏模式下可能需要调整样式,例如:
    :fullscreen, ::backdrop {
      background-color: #000;
    }
  • 权限问题:部分移动端浏览器可能限制全屏功能,需测试目标平台兼容性。

示例完整代码

以下是一个uniapp页面的完整示例,包含全屏按钮和状态管理:

<template>
    <view>
        <button @click="toggleFullscreen">切换全屏</button>
    </view>
</template>

<script>
export default {
    methods: {
        toggleFullscreen() {
            // #ifdef H5
            if (document.fullscreenElement) {
                this.exitFullscreen();
            } else {
                this.enterFullscreen();
            }
            // #endif
        },
        enterFullscreen() {
            const element = document.documentElement;
            if (element.requestFullscreen) {
                element.requestFullscreen();
            } else if (element.webkitRequestFullscreen) {
                element.webkitRequestFullscreen();
            }
        },
        exitFullscreen() {
            if (document.exitFullscreen) {
                document.exitFullscreen();
            } else if (document.webkitExitFullscreen) {
                document.webkitExitFullscreen();
            }
        }
    }
}
</script>

标签: 全屏网页
分享给朋友:

相关文章

react如何加载网页

react如何加载网页

使用 React 加载网页的方法 通过 iframe 嵌入网页 在 React 组件中,可以通过 iframe 标签直接加载外部网页。这种方式简单直接,适合嵌入第三方页面或静态内容。 imp…

css制作静态网页

css制作静态网页

使用CSS制作静态网页的基本方法 HTML结构搭建 静态网页的基础是HTML结构,需先创建清晰的DOM树。典型结构包括<!DOCTYPE html>声明、<head>(含<…

vue实现网页功能

vue实现网页功能

Vue 实现网页功能的核心方法 创建 Vue 项目 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 适合现代轻量级应用。 npm init vue@la…

Vue实现网页全屏

Vue实现网页全屏

Vue实现网页全屏的方法 在Vue中实现网页全屏功能可以通过浏览器的全屏API来实现。以下是几种常见的实现方式: 使用原生JavaScript全屏API 浏览器提供了requestFullscree…

vue如何实现全屏

vue如何实现全屏

实现全屏的基本方法 在Vue中实现全屏功能可以通过浏览器提供的Fullscreen API完成。以下是一个基础实现示例: // 进入全屏 function enterFullscreen(elem…

vue实现页面全屏

vue实现页面全屏

Vue 实现页面全屏的方法 使用浏览器原生 Fullscreen API 在 Vue 中可以通过调用浏览器的原生 Fullscreen API 实现全屏功能。以下是一个简单的实现示例: // 在…