uniapp组件库fullScreen 压窗屏的适用方法

news2024/9/25 11:22:21

目录

#平台差异说明

#基本使用

#触发压窗屏

#定义压窗屏内容

#注意事项


所谓压窗屏,是指遮罩能盖住原生导航栏和底部tabbar栏的弹窗,一般用于在APP端弹出升级应用弹框,或者其他需要增强型弹窗的场景。

警告

由于uni-app的Bug,在最新版的HX2.8.6(包括之前的多个版本),此功能(组件)无效,等到uni-app修复此Bug时,我们会撤销此通告。

提示

这里的做法是在本页面打开一个新页面,同时在pages.json中配置本页面的背景为百分百透明,这样即可达到压窗效果。
由于只有APP支持设置页面背景透明度,故只有APP支持本组件做法,非APP端不支持。

#平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序
xxxxxx

#基本使用

本组件只是提供参考思路和注意事项,因为每个人在弹窗需要实现的逻辑和样式都是不一样的,请参考本文档思路,自行实行相关功能。

首先,我们需要pages.json中声明一个页面用于弹窗:

// pages.json

"pages": [
	{
		"path": "uview-ui/components/u-full-screen/u-full-screen",
		"style": {
			"navigationStyle": "custom",  // 取消本页面的导航栏
			"app-plus": {
				"animationType": "fade-in", // 设置fade-in淡入动画,为最合理的动画类型
				"background": "transparent", // 背景透明
				"backgroundColor": "rgba(0,0,0,0)", // 背景透明
				"popGesture": "none" // 关闭IOS屏幕左边滑动关闭当前页面的功能
			}
		}
	}
]

通过上面的配置,我们得到了一个页面:

  • 这个页面去掉了导航栏
  • 页面进入的时候,是采用淡入动画的形式
  • 并且此页面的背景是百分比透明度,这样可以看到底层页面的内容
  • 移除在iOS上左滑手势,避免本页被左滑关闭

#触发压窗屏

我们在父页面(当前页面)通过路由方法,打开一个新页面(上面配置的压窗屏页面),由于它是一个普通的页面,故可以通过常规方法传递参数。

export default {
	onLoad() {
		// 也可以在onShow生命周期打开,此为uView封装的请求方法
		this.$u.route("/uview-ui/components/u-full-screen/u-full-screen?id=1");
	}
}

#定义压窗屏内容

当我们触发(打开)了压窗屏页面之后,将会有一个新的,背景透明的页面覆盖在本页面上,由于我们的终极目标就是要做一个弹窗,让其遮罩盖住"父页面"的导航栏和 Tabbar栏,所以这里我们可以使用uView的Popup 弹出层组件,并且将popup组件的mode参数设置center,即中部弹出的形式。

下方示例为打开一个Modal 模态框组件的示例,此组件内部用的也是popup组件。

<template>
	<u-modal v-model="show" :show-cancel-button="true" confirm-text="升级"
		title="发现新版本" @cancel="cancel" @confirm="confirm"
	>
		<view class="u-update-content">
			<rich-text :nodes="content"></rich-text>
		</view>
	</u-modal>
</template>

<script>
	export default {
		data() {
			return {
				show: true,
				// 传递给uni-app"rich-text"组件的内容,可以使用"<br>"进行换行
				content: `
					1. 修复badge组件的size参数无效问题<br>
					2. 新增Modal模态框组件<br>
					3. 新增压窗屏组件,可以在APP上以弹窗的形式遮盖导航栏和底部tabbar<br>
					4. 修复键盘组件在微信小程序上遮罩无效的问题
				`,
			}
		},
		onReady() {
			this.show = true;
		},
		methods: {
			cancel() {
				this.closeModal();
			},
			confirm() {
				this.closeModal();
			},
			closeModal() {
				uni.navigateBack();
			}
		}
	}
</script>

<style scoped lang="scss">
	.u-full-content {
		background-color: #00C777;
	}
	
	.u-update-content {
		font-size: 26rpx;
		color: $u-content-color;
		line-height: 1.7;
		padding: 30rpx;
	}
</style>

上面有一个需要注意的点,我们打开"压窗"弹窗后,可能需要通过一些按钮来关闭弹窗,这里关闭弹窗的本质意义是关闭弹出的页面(压窗屏弹框),所以用的是uni-app带的 关闭页面的接口uni.navigateBack(),见上方示例。

#注意事项

由于压窗屏其实也是一个普通的页面的,当我们关闭弹窗(顶层页面),"父页面"(上一个页面)就会显示出来,意味着会进入onShow生命周期,如有相关特定逻辑需要 处理,可关注此处。

由于弹窗打开的实际是一个页面,而不是一个组件,所以我们无法通过props的形式传递参数,有如下方式可以行进两个页面之间的通信:

  • 父页面通过URL参数的形式将参数传递给弹窗
  • 当弹窗内进行某些操作之后,可以通过uni.$emit的方式发送事件,父页面中通过uni.$on的形式接收事件和参数,达到通信的效果
  • 通过Vuex的形式共享变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1415058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度强化学习(王树森)笔记04

深度强化学习&#xff08;DRL&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接&#xff1a;https://github.com/wangshusen/DRL 源代码链接&#xff1a;https://github.c…

探索IOC和DI:解密Spring框架中的依赖注入魔法

IOC与DI的详细解析 IOC详解1 bean的声明2 组件扫描 DI详解 IOC详解 1 bean的声明 IOC控制反转&#xff0c;就是将对象的控制权交给Spring的IOC容器&#xff0c;由IOC容器创建及管理对象。IOC容器创建的对象称为bean对象。 要把某个对象交给IOC容器管理&#xff0c;需要在类上…

基于springboot+vue的在线教育系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

如何看待程序员抄代码还拿着高薪这一说法?

程序员的工资构成&#xff1a;会复制粘贴值1块&#xff0c;知道去哪复制值5K&#xff0c;知道粘贴在哪值10K&#xff0c;粘贴完了能跑起来值15 有人说&#xff1a;能带领一伙人复制粘贴值20k。 有人说&#xff1a;能写一个自动复制粘贴的系统值30k。 有人纳闷问到&#xff1a…

兄弟DCP-7057黑白激光多功能一体机加粉后清零方法

硒鼓加粉机器上清零&#xff0c;方法如下&#xff1a; 打开安装硒鼓的前盖。按“清除”键&#xff0c;显示“更换硒鼓”。不用管提示&#xff0c;接着按“启用Start”&#xff0c;再按“”&#xff0c;屏幕上显示“01”。继续按“”&#xff0c;直到屏幕上显示“11”。按“OK”…

【C/C++】C/C++编程——变量和常量

文章目录 变量变量的声明变量命名规则变量的类型 常量常量的定义与初始化字面量常量整型常量浮点型常量字符常量常量表达式&#xff08;constexpr&#xff09; 大家好&#xff0c;我是 shopeeai&#xff0c;也可以叫我虾皮&#xff0c;中科大菜鸟研究生。今天我们来一起来学习C…

软考之项目管理

一、考点分布 盈亏平衡分析&#xff08;※&#xff09;进度管理&#xff08;※※※&#xff09;软件质量管理&#xff08;※※&#xff09;软件配置管理&#xff08;※※&#xff09; 二、盈亏平衡分析 正常情况下&#xff0c;销售额固定成本可变成本税费利润 盈亏平衡下&#…

微信朋友圈新功能:多账号同步发圈,定时发圈!

​你是否会有这种烦恼 想要发布一条朋友圈&#xff0c;但是却因为忙着搞其他事情无暇顾及&#xff0c;甚至忘记了需要发布朋友圈这个事情&#xff1f; 有多个微信号想要同时为它们发布同一条内容的朋友圈&#xff0c;但又不想要分别登录进去进行操作&#xff1f; 你是否厌倦了每…

算法刷题:p1387 最大正方形

解题思路&#xff1a; 利用动态规划的思想设置一个标记数组flag[][]&#xff0c;flag[i][j]用来记录矩阵op[][]中以op[i][j]为右下角的子矩阵中最大的正方形边长&#xff0c;那么动态方程就是 flag[i][j]min(flag[i-1][j],min(flag[i-1][j-1],flag[i][j-1]))1;左侧和上方以及左…

Java基础—面向对象OOP—17类与对象(创建、构造器、创建对象时简单内存分析)

把握重点&#xff0c;重点已标注&#xff0c;这篇笔记分了4个章节&#xff0c;重点看二、三、四 一、整体思维--重点把握面向对象的本质和特点 1、面向对象编程OOP&#xff1a; Object-Oriented programming 2、面向过程与面向对象 面向过程&#xff1a;线性思维 面向对象…

k8s从初识到上天系列第二篇:kubernetes的组件和架构

&#x1f609;&#x1f609; 欢迎加入我们的学习交流群呀&#xff01; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring、SpringSecurity、Docker、Grpc、各种MQ、Rpc、SpringCloud等等很多应用和源码…

【word visio绘图】关闭visio两线交叉的跳线(跨线)

【visio绘图】关闭visio两线交叉的跳线&#xff08;跨线&#xff09; 1 如何在Visio绘图中关闭visio两线交叉的跳线&#xff08;跨线&#xff09;第一步&#xff1a;打开Visio并创建您的图形第二步&#xff1a;绘制您的连接线第三步&#xff1a;关闭跳线第四步&#xff1a;手动…

用友U8接口-获取token数据字段(2)

概括 本文的操作需要正确部署U8HttpApi &#xff0c;绑定IIS端口获取erp账套信息获取token访问令牌传入JSON的参数如何设置 账套数据库 方式一 查看数据库&#xff0c;UFDATA开头的 方式二 调用接口 此接口返回所有erp账套数据库信息 Token 访问有鉴权的接口&#x…

Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法

前言&#xff1a; 本篇博客超级详细&#xff0c;请尽量使用电脑端结合目录阅读 阅读时请打开右侧 “只看目录” 方便阅读 一、什么是Python 1.1 Python的诞生 1989年&#xff0c;为了打发圣诞节假期&#xff0c;Gudio van Rossum吉多 范罗苏姆&#xff08;龟叔&#xff09;决…

Javaweb之SpringBootWeb案例本地存储的详细解析

2.2 本地存储 前面我们已分析了文件上传功能前端和后端的基础代码实现&#xff0c;文件上传时在服务端会产生一个临时文件&#xff0c;请求响应完成之后&#xff0c;这个临时文件被自动删除&#xff0c;并没有进行保存。下面呢&#xff0c;我们就需要完成将上传的文件保存在服…

BAT学习笔记:详解环境变量及其所有创建方法

文章目录 一、初识环境变量二、什么是环境变量三、为什么需要环境变量四、环境变量的分类五、环境变量的设置 一、初识环境变量 1.windows 的搜索框中输入 查看高级系统设置。点击打开系统属性窗口。 2. 在系统属性窗口中&#xff0c;点击右下方的“环境变量”打开环境变量设…

计算机找不到ucrtbased.dll无法运行程序,分享5种有效的解决方法

当计算机系统在运行过程中无法找到ucrtbased.dll这个特定的动态链接库文件时&#xff0c;可能会引发一系列的问题和故障现象。ucrtbased.dll是Windows操作系统中一个至关重要的组件&#xff0c;它包含了C运行时库的核心函数&#xff0c;对于许多应用程序特别是基于Microsoft Vi…

log4cplus开源库使用

log4cplus 的github地址&#xff1a;https://github.com/log4cplus/log4cplus 下载链接&#xff1a;log4cplus - Browse /log4cplus-stable/2.0.7 at SourceForge.net 官方文档&#xff1a;log4cplus / Wiki / Home 1.log4cplus配置 &#xff08;1&#xff09;打开解决方案…

滴水逆向三期笔记与作业——02C语言——10 Switch语句反汇编

滴水逆向三期笔记与作业——02C语言——10 Switch语句反汇编 一、Switch语句1、switch语句 是if语句的简写2、break加与不加有什么特点?default语句可以省略吗&#xff1f;3、游戏中的switch语句&#xff08;示例&#xff09;4、添加case后面的值&#xff0c;一个一个增加&…

故障树分析蒙特卡洛仿真程序(附MATLAB完整代码)

故障树是一种特殊的倒立树状逻辑因果关系图&#xff0c;它用事件符号、逻辑门符号和转移符号描述系统中各种事件之间的因果关系&#xff0c;通过对引起系统故障的各种因素进行逻辑因果分析&#xff0c;确定导致故障发生的各种可能的原因&#xff0c;并通过定性和定量分析找出系…