uniapp 开发视频屏保

需求:
一台大屏幕安卓主机用于前台服务,在启动APP的时候播放视频,触摸屏幕的时候才进入主页面,在主页面闲置两分钟后自动进入屏保视频。
难点:
处理video组件层高问题,在视频上层加一透明页面接收触摸事件。

1.使用subNvue处理层高的方法

在pages.json文件配置视频页面引用vue

		{
		    "path" : "pages/mp4/mp4",
		    "style" :                                                                                    
		    {
		        "navigationBarTitleText": "",
		        "enablePullDownRefresh": false,
				"app-plus":{
					"titleNView":false  ,//关闭导航栏
					
					//解决video组件层高问题
					"subNVues":[{  
						"id": "popup", // 唯一标识  nvue页面最外层<view id="popup" > </view>
						"path": "pages/closepage/closepage", // nvue页面路径 ,此页面配置弹窗内容 
						//"type": "popup",  //原生子窗口内置样式,可取值:'popup',弹出层;"navigationBar",导航栏
						"style": {  
							"position":"absolute",
							"height": "750px", //这里控制遮罩层高度
							"top":"40px",
							"background":"transparent"  //透明
						}  
					}]  
				}
		    }
		    
		}, 	

在这里插入图片描述
在播放视频页面加载最上层的nvue页面

<script>
	//声明全局变量	
	var subNvue = null
	
	export default {
		data() {
			return {

			}
		},
		onLoad() {
			subNvue=uni.getSubNVueById('popup');   //加载弹窗 
		},
		onShow() {			
			subNvue.show()  // 显示弹窗			
		},
		
		onHide() {
			subNvue.hide() //隐藏弹窗			
		},
 	}
</script>

nvue页面用于接收事件

<template>
	<view id="popup" >
		<view class="gb" @click="btnclose" :style=" {height:windowHeight +'px', width:windowWidth +'px'} ">
			<!-- <image class="gbimage" src="../../static/png/gb.png" mode=""></image> -->
		</view>		
	</view>
</template>

<script>
	export default {
		data() {
			return {
				windowWidth: 0,
				windowHeight: 0		
			}
		},
		onLoad() {
			uni.getSystemInfo({
				success: (res) => {
					//console.log(res)
					this.windowWidth = res.windowWidth
					this.windowHeight = res.windowHeight
				}
			})
		},	
		
		methods: {
			btnclose() {				
				uni.navigateTo({  //跳转到页面
					url: "../index/index",
				})				

			}
		}
	}

</script>

2.使用定时器触发跳转到屏保页面

在主页面使用定时器计算屏幕闲置时间,逻辑是利用触碰事件清空计时。

<template>
	<view class="content" @touchend="touchclear()">
		<view> </view>
	</view>
</template>

<script>
	var ntime = 0  //计时初始值
	export default {
		data() {
			return {
				timer: null
			}
		},
		
		onShow() {				
			//定时器10秒运行一次
			this.timer = setInterval( () => {				
				this.gotomp4()
			}, 10000)		 
		},
		
		onHide() {			
			// 清除定时器			
			if(this.timer) {  
				clearInterval(this.timer);  
				this.timer = null;  
			}  
		},	
			
		methods: {
			//触摸屏幕的时候不计时
			touchclear() {
				console.log("时间清零")				
 				ntime = 0
			},
			
			//屏幕闲置时间到了就跳转去播放视频
			gotomp4(){
				ntime = ntime + 1 
				console.log(ntime)
				//闲置时间2分钟
				if(ntime >= 12){ 
					ntime = 0
					uni.navigateTo({
						url: "../mp4/mp4",
					})
				}
			}
	}	

</script>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用 Uniapp 开发 App 时,以下是一些需要注意的事项: 1. 跨平台适配:Uniapp 允许你使用一套代码同时开发多个平台的 App,如微信小程序、H5、App 等。但是需要注意不同平台的差异性,确保你的代码在各个平台上都能正常运行和展示。 2. 组件选择:Uniapp 提供了一些跨平台的组件,但并不是所有平台都支持所有组件。在选择组件时,要查看文档,了解组件在目标平台上的兼容性和限制。 3. 性能优化:App 的性能对用户体验至关重要。要注意减少不必要的请求、优化图片资源、减少页面渲染等方面来提高 App 的性能。 4. 适配不同屏幕尺寸:App 会在各种不同尺寸的设备上运行,要确保你的布局和样式能够适配不同的屏幕尺寸和分辨率。 5. 使用插件:Uniapp 提供了插件市场,可以使用各种插件来增加 App 的功能和特性。但是要注意选择可靠的插件,并且仔细查看插件文档和示例以确保正确使用。 6. 调试和测试:在开发过程中,及时进行调试和测试是非常重要的。Uniapp 提供了一些调试工具和模拟器,可以帮助你快速定位和解决问题。 7. 安全性考虑:App 的安全性是一个重要的问题。要注意保护用户的隐私数据,避免使用不安全的网络请求方式,以及对用户输入进行合理的验证和过滤。 8. 及时更新:Uniapp 是一个活跃的开源项目,会不断更新和改进。要及时关注 Uniapp 的更新和发布版本,并根据需要进行升级和迁移。 以上是一些开发 Uniapp App 需要注意的事项,希望对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值