针对uniApp在地图、视频上增加弹窗层级问题记录

打从使用uniApp,一直有个重大问题困扰我,那就是在地图和视频使用时,产品往往喜欢搞一些视觉效果爆炸的“特殊”弹窗,还动不动就来句这也实现不了,那也实现不了???我就没受过这样的气!!!

方法一:nvue

在这里特别说明,针对杠精提问:为什么不使用cover-view、cover-image?呵呵,脑子有问题。只有 这两种标签,且还不能嵌套组件,这怎么能拿来做复杂效果?除非你只需要放一句话,那你一定要用cover-view😁。

回到主题,简单介绍一下nvue:vue文件走的webview渲染,nvue走weex方式的原生渲染。uni-app的App端内置了一个基于weex改进的原生渲染引擎,提供了原生渲染能力,所以一般nvue是使用在app项目中的,其用法与vue页面一样,可嵌套组件,主要要注意的是css的限制:

1、在nvue中,只能使用默认的flex布局方式,默认是竖排(column)排列;不能使用百分比

2、只有text标签才能给文字设置颜色、大小;文字内容,必须、只能在text组件下。不能在div、view的标签里直接写文字。否则即使渲染了,也无法绑定js里的变量。

3、不支持背景图片;进行class绑定的时候,只支持数组语法

最后说一句,官网说复杂页面推荐用nvue,因为weex原生渲染性能好啊,若果你信了,那么当你用过后,你一定会和我一样把它当个笑话(坑多的填不完🤣),所以我建议还是以vue为主,废话不再说,直接上代码:

一、pages.json路由定义

{
	"pages": [
		{
			"path": "pages/index/index",
			"style": {
				"app-plus": {
					"titleNView": false, //不启用系统导航
					"subNVues": [{
						"id": "comment",
						"path": "pages/index/subNVue/screen",
						"style": {
							"height": "100%",
							"width":"100%",
							"position":"absolute",
							"top":"0",
							"right":"0",
							"bottom":"0",
							"left":"0",
							"color":"#000000",
							"background":"transparent",
							"zindex":10000000
						}
					}]
				}
			}
		}, 
	]
}

在这里插入图片描述
二、index.vue中使用screen.nvue(内容无所谓,这里不展示)

export default {
		data() {
			return {
				subNvue: '',
			}
		},
		created() {
			this.subNvue = uni.getSubNVueById('comment'); //获取
			this.subNvue.show() // 显示
			setTimeout(function(){
				this.subNvue.hide() // 隐藏
			},2000)
			
		},
	}

方法二、透明页面

如果对uniapp路由跳转方式有一定了解的话并心细的话你就会发现uni.navigateTo之所以能uni.navigateBack是因为上一个页面并未被销毁🎉!!!既然如此,那么新页面不就是在就业面之上吗,如果我将新页面的背景改成透明的。。。

pages.json

...
{
            "path" : "pages/home/monitoring-modal",
            "style": {
            	"navigationStyle": "custom",
            	"backgroundColor": "transparent",
            	"app-plus": {
            		"animationType": "fade-in",
            		"background": "transparent",
            		"popGesture": "none"
            	}
            }
            
        }

monitoring-modal.vue

...
<style>
page {
		background: transparent;
	}
</style>

以上既是关键代码,也是我目前发现的最佳解决方案,强烈推荐!!!

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cesium是一个开源的Web地理信息系统(GIS)库,它使用3D地球模型来展现地理空间数据。要将视频监控接入Cesium,首先需要将监控摄像头的视频流数据与Cesium进行集成。 实现视频监控接入Cesium的一种方式是,通过摄像头的视频流获取视频数据,并将其编码为流媒体协议(例如RTMP或HLS)格式。然后,使用Cesium的嵌入式视频播放器模块,将流媒体视频源作为材质应用到3D场景中。这样,监控视频就可以在Cesium的3D地球模型上实时显示了。 另外,还可以结合Cesium的其他功能和工具,来增强视频监控的显示效果。例如,可以使用Cesium的标签和图标功能,在地球模型上以标记或图标的形式显示摄像头的位置和方向。还可以运用Cesium的沿路径动画功能,模拟监控摄像头的运动轨迹,从而更加直观地展示监控范围。 除了显示监控视频,Cesium还提供了交互性强大的功能。可以通过Cesium的工具栏,为视频监控添加放大、缩小、旋转等控制按钮,使用户可以自由地控制视频视角和观看模式。此外,Cesium还提供了热点、选取和弹窗等交互元素,可以用于展示监控视频的相关信息和实时数据。 总之,通过将视频流数据与Cesium集成,可以实现视频监控在3D地球模型上的实时显示和交互。这种方式不仅可以提供直观、灵活的视觉展示,还可以结合Cesium强大的GIS功能,为视频监控带来更多附加价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值