解决小程序web-view两个恶心问题

news2024/11/15 22:03:38

🧑‍💻 写在开头
点赞 + 收藏 === 学会🤣🤣🤣

1.web-view覆盖层问题

问题由来

web-view 是一个 web 浏览器组件,可以用来承载网页的容器,会自动铺满整个页面。

所以这得多恶心。。。不仅铺满,还覆盖了普通的标签,调z-index都无解。

解决办法

web-view内部使用cover-view,调整cover-view的样式即可覆盖在web-view上。

cover-view

覆盖在原生组件上的文本视图。
app-vue和小程序框架,渲染引擎是webview的。但为了优化体验,部分组件如map、video、textarea、canvas通过原生控件实现,原生组件层级高于前端组件(类似flash层级高于div)。为了能正常覆盖原生组件,设计了cover-view。
支持的平台:
在这里插入图片描述

具体实现

<template>
    <view>
		<web-view :src="viewUrl" v-if="viewUrl" >
			<cover-view class="close-view" @click="closeView()">
				<cover-image class="close-icon" src="../../static/design/close-icon.png"></cover-image>
			</cover-view>
		</web-view>
    </view>
</template>
.close-view{
    position: fixed;
    z-index: 99999;
    top: 30rpx;
    left: 45vw;

    .close-icon{
        width: 100rpx;
        height: 80rpx;
    }
}

代码说明:这里的案例是一个关闭按钮图标悬浮在webview上,点击图标可以关闭当前预览的webview。

注意

仅仅真机上才生效,开发者工具上是看不到效果的,如果要调整覆盖层的样式,可以先把web-view标签注释了,写完样式没问题再释放web-view标签。

2.web-view导航栏返回

问题由来

  • 小程序端 web-view 组件一定有原生导航栏,下面一定是全屏的 web-view 组件,navigationStyle: custom
    对 web-view 组件无效。

场景

用户在嵌套的webview里填写表单,不小心按到导航栏的返回了,就全没了。

解决办法

使用page-container容器,点击到返回的时候,给个提示。

page-container

页面容器。
小程序如果在页面内进行复杂的界面设计(如在页面内弹出半屏的弹窗、在页面内加载一个全屏的子页面等),用户进行返回操作会直接离开当前页面,不符合用户预期,预期应为关闭当前弹出的组件。 为此提供“假页”容器组件,效果类似于 popup 弹出层,页面内存在该容器时,当用户进行返回操作,关闭该容器不关闭页面。返回操作包括三种情形,右滑手势、安卓物理返回键和调用 navigateBack 接口。

具体实现

<template>
    <view>
		<web-view :src="viewUrl" v-if="viewUrl" >
			<cover-view class="close-view" @click="closeView()">
				<cover-image class="close-icon" src="../../static/design/close-icon.png"></cover-image>
			</cover-view>
		</web-view>
          <!--这里这里,就这一句-->
          <page-container :show="isShow" :overlay="false" @beforeleave="beforeleave"></page-container>
    </view>
</template>

export default {
    data() {
        return {
            isShow: true
        }
    },
    methods: {
        beforeleave(){
            this.isShow = false
            uni.showToast({
                    title: '别点这里',
                    icon: 'none',
                    duration: 3000
            })
        }
    }
}

结语

算是小完美的解决了吧,这里记录一下,看看就行,勿喷。

连夜更新安卓cover-view失效问题

由于之前一直用ios测试的,今晚才发现这个问题

解决办法

cover-view, cover-image{
    visibility: visible!important;
    z-index: 99999;
}

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。
在这里插入图片描述

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

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

相关文章

集合的面试题和五种集合的详细讲解

20240724 一、面试题节选二、来自于b站人人都是程序员的视频截图 &#xff08;感谢人人都是程序员大佬的视频&#xff0c;针对于个人复习。&#xff09; 一、面试题节选 二、来自于b站人人都是程序员的视频截图 hashmap&#xff1a; 唯一的缺点&#xff0c;无序&#xf…

mysql之视图的创建以及查询;

一&#xff1a;数据库及其表的创建&#xff1a; mysql> create database mydb15_indexstu; Query OK, 1 row affected (0.00 sec)mysql> use mydb15_indexstu; Database changed mysql> create table student(-> sno int primary key auto_increment,-> sname …

js语法 proxy对象拦截方法详解,proxy代理一个对象(数组,函数)的操作方法

如果还不能理解什么是proxy代理可以参考&#xff1a;js语法---理解反射Reflect对象和代理Proxy对象_js代理对象-CSDN博客 proxy代理对象(数组&#xff0c;函数)&#xff0c;可以拦截的操作 apply---拦截方法的执行(包括直接执行&#xff0c;通过apply&#xff0c;call执行),和对…

【element ui】input输入控件绑定粘贴事件,从 Excel 复制的数据粘贴到输入框(el-input)时自动转换为逗号分隔的数据

目录 1、需求2、实现思路:3、控件绑定粘贴事件事件修饰符说明: 4、代码实现&#x1f680;写在最后 1、需求 在 Vue 2 和 Element UI 中&#xff0c;要实现从 Excel 复制空格分隔的数据&#xff0c;并在粘贴到输入框&#xff08;el-input&#xff09;时自动转换为逗号分隔的数据…

Pycharm 和虚拟环境的那些事?

背景: 我既有 python 又有Anaconda Pycharm新建虚拟环境: 只说两种方式 通过Virualenv Environment新建: 这里我们勾选上 Make available to all projects ,之后点击&#x1f197; 然后可以发现只有非常少的包,因为没有勾选继承 编译器的包 创建的虚拟环境一般目录如下&…

【Git多人协作开发】知识点总结

目录 知识点总结 1.创建dev分支开发 1.1在本地创建 1.1在远程创建&#xff08;推荐&#xff09; 2.远程分支和本地分支建立连接☞pull和push操作 2.1情况1 2.2情况2 2.3情况3 3.本地仓库对远程仓库的拉取pull操作 3.1情况1 3.2情况2 4.将开发分支的内容合并到远程m…

充电桩浪涌保护方案—保障充电设施安全稳定运行的关键

在当今新能源汽车蓬勃发展的时代&#xff0c;充电桩作为电动汽车的“加油站”&#xff0c;其重要性不言而喻。然而&#xff0c;由于其复杂的电气环境和暴露于户外的特点&#xff0c;充电桩容易受到浪涌的影响。浪涌可能来自雷电、电网故障、大功率设备的启停等&#xff0c;对充…

在 Windows 上安装 PostgreSQL

官网下载地址&#xff1a; https://www.enterprisedb.com/downloads/postgres-postgresql-downloadsWindows平台 官网直接提供exe安装包&#xff0c;没有手动安装的压缩包 postgresql-14.4-1-windows-x64.exe几个重要的安装选项 安装界面会指定服务程序和库两个路径&#xf…

5G赋能车联网,无人驾驶引领未来出行

无人驾驶车联网应用已成为智能交通领域的重要发展趋势。随着无人驾驶技术的不断进步和5G网络的广泛部署&#xff0c;5G工业路由器在无人驾驶车联网中的应用日益广泛&#xff0c;为无人驾驶车辆提供了稳定、高效、低时延的通信保障。 5G工业路由器的优势 低时延&#xff1a;5G网…

【STM32 HAL库】ADC

ADC&#xff0c;顾名思义就是模拟信号->数字信号ADC工作原理 分类&#xff1a; 并联比较型-----转换速度快-----成本高、功耗高、分辨率低 分压部分比较部分编码部分&#xff08;其中Vx为模拟电压输入 &#xff09; 逐次逼近型-----结构简单&#xff0c;功耗低-----转换速…

electron 网页TodoList应用打包win桌面软件数据持久化

参考&#xff1a; electron 网页TodoList工具打包成win桌面应用exe https://blog.csdn.net/weixin_42357472/article/details/140648621 electron直接打包exe应用&#xff0c;打开网页上面添加的task在重启后为空&#xff0c;历史没有被保存&#xff0c;需要持久化工具保存之前…

汽车免拆诊断案例 | 2018 款别克阅朗车蓄电池偶尔亏电

故障现象 一辆2018款别克阅朗车&#xff0c;搭载LI6发动机和GF6变速器&#xff0c;累计行驶里程约为9.6万km。车主反映&#xff0c;该车停放一晚后&#xff0c;蓄电池偶尔亏电。 故障诊断 接车后用虹科Pico汽车示波器和高精度电流钳&#xff08;30 A&#xff09;测量该车的寄…

ElementUI,修改el-table中的数据,视图无法及时更新

需求&#xff1a;点击table表格中的“修改”之后&#xff0c;当前行变为可输入状态的行&#xff0c;点击“确定”后变为普通表格&#xff1b; 先贴上已经完美解决问题的代码 实现代码&#xff1a; <section><div style"display: flex;justify-content: space-b…

数据中心服务器搬迁团队

数据中心机房服务器搬迁&#xff0c;需要专业的数据中心机房服务器提供技术保障服务。友力科技&#xff08;广州&#xff09;有限公司&#xff0c;作为华南地区主流的数据中心服务商&#xff0c;专业从事数据中心机房搬迁服务。 数据中心机房搬迁涉及设备数量多、系统复杂&…

基于联盟链Fabric 2.X 的中药饮片代煎配送服务与监管平台

业务背景 近年来&#xff0c;随着公众对中医药青睐有加&#xff0c;中药代煎服务作为中医药现代化的重要一环&#xff0c;在全国各地蓬勃兴起。鉴于传统煎煮方式的繁琐耗时&#xff0c;医疗机构纷纷转向与第三方中药饮片企业合作&#xff0c;采用集中代煎模式。这些第三方煎药中…

goenv丝滑控制多版本go

安装 先装下goenv brew install goenv去 ~/.bash_profile 添加一下 export GOENV_ROOT"$HOME/.goenv" export PATH"$GOENV_ROOT/bin:$PATH" eval "$(goenv init -)"执行一下让配置生效 source ~/.bash_profile插一嘴&#xff0c;如果之前是在…

【BUG】已解决:No Python at ‘C:Users…Python Python39python. exe’

No Python at ‘C:Users…Python Python39python. exe’ 目录 No Python at ‘C:Users…Python Python39python. exe’ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班…

独立游戏《星尘异变》UE5 C++程序开发日志8——实现敏感词过滤功能(AC自动机)

在游戏中经常会有需要玩家输入一些内容的功能&#xff0c;例如聊天&#xff0c;命名等&#xff0c;这款游戏只有在存档时辉用到命名功能&#xff0c;所以这个过滤也只是一个实验性的功能&#xff0c;我们将使用AC自动机来实现&#xff0c;这是在我们把“csdn”这个词设置为屏蔽…

nginx代理缓存配置-Linux(CentOS)

代理缓存 1. 编写主配置文件2. 编辑虚拟机配置文件3. 重启nginx服务 nginx代理服务配置&#xff0c;基于http协议 开启代理缓存的前提是已经开启了代理服务&#xff0c;请确保已经开启代理服务 1. 编写主配置文件 主配置文件通常在/etc/nginx/nginx.conf&#xff0c;在该文件…

【Vue3】watch 监视 ref 定义的数据

【Vue3】watch 监视 ref 定义的数据 背景简介开发环境开发步骤及源码参数说明 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努…