就简单描述一下吧,官网上说的较多的cover-view、nvue、subNvue、web-view等原生组件,就不做过多描述了,直接上官网看。
利用v-html解决的办法:(本次视频覆盖住了自定义头部就是采取的此种方式)
<view v-html="contentVideo" @click="playVideo(contentVideo)">
data(){
return {
contentVideo: `<video :src="${this.myVideoUrl}" style="max-width:100%;"></video>`,
myVideoUrl:''//存放视频路径的变量
}
}
需要动态修改视频路径的时候,在获取视频路径之后,再重新赋值一次contentVideo ,
this.myVideoUrl = this.carouselArr[0].rs0204 || ''//获取视频路径
this.contentVideo =`<video enable-danmu controls src="${this.myVideoUrl}" style="max-width:100%;"></video>`
//拓展一下,这个原生video设置默认封面图,设置poster参数,控制图片大小可以通过设置下面style的样式进行设置宽高
this.contentVideo =`<video enable-danmu controls src="${this.myVideoUrl}" style="width:100%;height: 183px;" poster="${this.carouselArr[0].rs0207}"></video>`
再说一下plus.nativeObj.View:
(比如说要在视频表面展示一个覆盖样式)
<template>
<view></view>
</template>
data() {
return {
view:null//指定需要定义的样式标签
};
},
methods: {
// 创建一个样式
create() {
// #ifdef APP-PLUS
this.view = new plus.nativeObj.View('bottom-btn', {
bottom: '0px',
left: '0px',
height: '45px',
width: '100%',
backgroundColor: '#1682e7'
},
[{
tag: 'font',
id: 'font',
text: '播放',
textStyles: {
size: '15px',
color: '#ffffff'
}
}]);
// 监听点击事件
this.view.addEventListener("click", () => {
console.log('点击了按钮')
}, false);
// 显示按钮
this.show()
// #endif
},
// 释放 关闭页面必须释放控件
close() {
this.view.close()
this.view = null
},
// 显示按钮
show() {
if (!this.view) {
this.create()
return
}
this.view.show();
},
// 隐藏按钮
hide() {
this.view && this.view.hide()
}
},
onShow() {
this.show()
},
onHide() {
this.hide()
},
onUnload() {
this.close()
}