uniapp小程序中给web-view页面添加授权弹窗(使用cover-view组件覆盖实现该功能)

这篇具有很好参考价值的文章主要介绍了uniapp小程序中给web-view页面添加授权弹窗(使用cover-view组件覆盖实现该功能)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果图:

cover-view与web-view,uni-app,小程序,前端

web-view是承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用。

cover-view与web-view,uni-app,小程序,前端
再看下面一个提示:
每个页面只能有一个 web-view,web-view 会自动铺满整个页面,并覆盖其他组件。
也就是说,小程序中使用web-view打开网页,在页面上写的其它组件会直接被网页给覆盖住
cover-view与web-view,uni-app,小程序,前端


需求:在web-view页面添加弹窗

刚好有一个组件cover-view可以覆盖web-view

cover-view覆盖在原生组件上的文本视图。

app-vue和小程序框架,渲染引擎是webview的。但为了优化体验,部分组件如map、video、textarea、canvas通过原生控件实现,原生组件层级高于前端组件(类似flash层级高于div)。为了能正常覆盖原生组件,设计了cover-view。

cover-view功能描述:

可覆盖的原生组件包括 map、video、canvas、camera、live-player、live-pusher、web-view

cover-view只支持嵌套 cover-view、cover-image,可在 cover-view 中使用 button。组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。

也就是在cover-view中只能使用cover-view、cover-image、button三个组件

代码示例:

注意:checkbox按钮是图片代替的,因为不能使用checkbox组件文章来源地址https://www.toymoban.com/news/detail-768262.html

<template>
	<view>
		<web-view :src="url">
			<cover-view class="my-cover" v-if="coverIsShow">
				<cover-view class="cover-box">
					<cover-view class="des">
						<cover-view class="des-text1">本服务将由{{corporateName}}提供,南洋商业银行(中国)将在您办理以下业务时将您的对应信息提供给该公司用于下述目的:</cover-view>
						<cover-view class="des-text">购买商品</cover-view>
						<cover-view class="des-text">手机号码:用于识别客户及查询订单</cover-view>
						<cover-view class="des-text1">{{corporateName}}服务热线{{phoneNum}},相关商品和服务(包括售后)均由该公司负责。</cover-view>
					</cover-view>
					<cover-view class="nav-select">
						<cover-view class="select-item" @click="checkBoxBtn">
							<cover-image @click="checkAllGouBox" class="image" src="@/static/applyAccont/check.png" v-if="chackBoxIsShow"></cover-image>
							<cover-image @click="checkAllGouBox" class="image" src="@/static/applyAccont/uncheck.png" v-else></cover-image>
							<cover-view>我已阅读并同意</cover-view>
						</cover-view>
						<cover-view class="nav-privacy" @click="userPrivacy">《用户协议》</cover-view>
						<cover-view></cover-view>
						<cover-view class="nav-privacy" @click="agreePrivacy">《隐私协议》</cover-view>
					</cover-view>
					<cover-view class="btns">
						<button class="reject" @click="goBack">不同意授权</button>
						<button type="primary" class="agree" @click="confirm">已知悉,同意授权</button>
						<!-- <button type="primary" class="agree" @click="confirm" :disabled="!chackBoxIsShow">已知悉,同意授权</button> -->
					</cover-view>
				</cover-view>
			</cover-view>
		</web-view>
	</view>
</template>

<script>
	import apiUrl from '@/utils/commonUrl.js';
	export default {
		data() {
			return {
				url: '',
				corporateName:'上海xxx科技有限公司',
				phoneNum: '999999999',
				coverIsShow: false,
				chackBoxIsShow: false,
			};
		},
		onLoad() {
			this.url = apiUrl.baseUrl+ "&t=" + new Date().getTime()
		},
		methods: {
			},
			// 复选框点击
			checkBoxBtn(){
				this.chackBoxIsShow = !this.chackBoxIsShow;
			},
			// 取消返回
			goBack(){
				uni.navigateBack({
					delta:1
				})
			},
			// 确认协议
			confirm(){
				this.$store.commit('SET_BEILIANPROVICY', '1');
				this.coverIsShow = false
			},
			// 用户协议
			userPrivacy(){
				uni.navigateTo({
					url:'/pages/home/beiLiAnUser'
				})
			},
			// 隐私协议
			agreePrivacy(){
				uni.navigateTo({
					url:'/pages/home/beiLiAnPrivacy'
				})
			}
		}
	}
</script>

<style lang="scss">
.my-cover{
	 position: fixed;
	 top: 0;
	 left: 0;
	 width: 100%;
	 height: 100%;
	 z-index: 100;
	 background-color: rgba(0,0,0,.3);
	 display: flex;
	 align-items: center;
	 justify-content: center;
	 z-index: 99999;
	
	.cover-box{
		width: 636rpx;
		box-sizing: border-box;
		background: #fff;
		border-radius: 16rpx;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		
		.des {
			font-size: 26rpx;
			margin-top: 40rpx;
			width: 560rpx;
			
			.des-text{
				width: 560rpx;
				color: #666;
				line-height: 48rpx;
				white-space: pre-wrap;
				text-indent: 2em;
				word-break:break-all;
			}
			
			.des-text1{
				width: 560rpx;
				white-space:pre-wrap;
				line-height: 48rpx;
				color: #333;
				font-weight: bold;
				text-indent: 2em;
				word-break:break-all;
			}
		}
		
		.nav-select{
			margin-top: 28rpx;
			margin-left: 10rpx;
			margin-right: 10rpx;
			font-size: 26rpx;
			display: flex;
			
			.select-item{
				display: flex;
				
				.image {
					width: 30rpx;
					height: 30rpx;
					margin-right: 20rpx;
				}
			}
			
			.nav-privacy{
				color: #1989FF;
			}
		}
		
		.btns {
			margin-top: 32rpx;
			margin-bottom: 0;
			display: flex;
			
			.reject {
				color: #333;
				font-size: 28rpx;
				background: #fff;
				height: 100rpx;
				line-height: 100rpx;
				font-weight: 500;
				width: 320rpx;
				border-top: 2rpx solid #eee;
			}
			
			.agree {
				color: #1989ff;
				font-size: 28rpx;
				background: #fff;
				height: 100rpx;
				line-height: 100rpx;
				font-weight: 500;
				width: 320rpx;
				border-top: 2rpx solid #eee;
				margin-left: -2rpx;
			}
			
			:deep(button[disabled][type=primary]) {
				color: #8cc4fd !important;
				border-radius: 0!important;
			}
			button {
				border-radius: 0!important;
			}
		}
	}	
}
</style>

到了这里,关于uniapp小程序中给web-view页面添加授权弹窗(使用cover-view组件覆盖实现该功能)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序通过web-view网页授权获取用户公众号OpenID

    第一步: 通过该地址 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfot=sandbox/index 获取到微信公众号测试号AppID与appsecret (测试公众号可以测试使用,个人公众号不允许使用。微信认证服务号可以使用,微信认证订阅号不可以使用)。 接口权限查看链接: https://developers.weix

    2024年02月08日
    浏览(82)
  • uniapp 开发 APP 使用 web-view 引入H5 app与 h5 页面通信

    uniapp 可以同时兼容 APP 和 H5,但有时候有些功能在 APP 中实现不了而在 H5 中可以实现,就可以采用 web-view 的方式在 APP 模式下显示 H5 页面。但是 APP 和 H5 储存的参数是不能共享的,例如token,就涉及到 APP 与 H5 之间的参数传递。 H5 向 APP 传参:引入 webview.js ,调用 uni.postMes

    2024年02月13日
    浏览(48)
  • 小程序之web-view中的页面分享

    由于整个小程序都是用web-view嵌入的,这个时候,如果单纯的进行页面分享,只会导致不管在web-view的哪个页面进行分享,都会在点击后进入首页。 首先是开启小程序的页面分享功能 然后在onShareAppMessage中包装一下分享的信息,该回调是在点击右上角的分享之后,但是信息还

    2024年02月04日
    浏览(44)
  • 小程序通过<web-view>跳转H5页面

     小程序通过web-view跳转H5页面 vue项目  小程序项目 在小程序app.json文件,配置vue跳小程序页面的路径   \\\"pages\\\":[     \\\"pages/wxpay/wxpay\\\"   ],

    2024年02月08日
    浏览(48)
  • uniapp的小程序中使用web-view进行相互传参,并监听web-view的返回键

    H5页面中 1.引入微信js https://res.wx.qq.com/open/js/jweixin-1.4.0.js 2.引入 uniapp 的jdk文件(去官网下到本地)( 引入一定要放到body下面,不然UniAppJSBridgeReady不生效 ) 3.写好UniAppJSBridgeReady vue页面中接收值 在vue的h5页面中 在uniapp页面中通过@message拿值 原因:官方说小程序使用web-view是

    2024年02月08日
    浏览(52)
  • 钉钉小程序 打开web-view页面显示白屏

     注意: 先检查是否配置HTTP 安全域名和 Webview 安全域名 !!一定要配置 配置后,我真机调试时ios手机仍然无法打开。 原因:发现url中存在中文字符 解决办法:使用encodeURIComponent, encodeURIComponent()  函数通过将特定字符的每个实例替换成代表字符的 UTF-8 编码的一个、两个

    2024年02月02日
    浏览(87)
  • 微信小程序在web-view页面增加一个按钮

    需求: 在微信小程序中通过web-view打开H5页面,需要小程序端在页面中增加一个可以请求接口的按钮 实现方法 通过在web-view中嵌套cover-view标签来实现( 注意: cover-view只支持嵌套 cover-view、cover-image,可在 cover-view 中使用 button,但是本人在里面使用button标签时,对button添加样式无效

    2024年02月07日
    浏览(76)
  • 小程序中web-view网页中打开或返回小程序页面

    小程序中web-view网页中使用JSSDK提供的接口打开或返回小程序页面 1、引入 JSSDK 文件 2、判断是否在小程序环境 3、根据是否小程序环境,执行操作  或   开放标签H5跳转小程序

    2024年02月16日
    浏览(42)
  • 小程序web-view,h5页监听返回到小程序指定页面

    在h5页面进行监听返回跳转判断: created(){ this.pushHistory(); window.addEventListener(\\\"popstate\\\", function(e) { //首页点击返回,直接关闭网页 WeixinJSBridge.call(\\\'closeWindow\\\'); uni.reLaunch({ url: `xxxx`, }); }, false); }, methods:{ pushHistory() { var state = { title: \\\"title\\\", url: \\\"#\\\" }; window.history.pushState(state, state.title,

    2024年02月11日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包