uniapp项目video视频全屏时,自定义窗口
·
官网推荐的cover-view只能在非App,非H5环境下生效。App环境下要用纯nvue页面
(1:video所在的nvue页面嵌套vue
或者
2:vue页面嵌套video所在的nvue页面;
这两种全屏时还是看不见自定义窗口)
为了兼容微信小程序和app需要写一个videopage.vue和一个videopage.nvue
pages.jscon引入的时候只会引入 /xx/xx/videopage
微信小程序环境下生效的页面会是videopage.vue;App打包生效的会是videopage.nvue。
两个页面写法除css以外几乎完全一样。template不一样是因为nvue的css样式不能继承,所以文字样式要专门套一个text,然后给其class,再进行样式定义。
<view class="video-page">
<view class="video-box">
<video :src="videoUrl">
<cover-view>
<scroll-view>
//这里面就可以写自定义页面,爱写啥写啥
</scroll-view>
</cover-view>
</video>
</view>
</view>
nvue与vue页面都是上面这个格式,video播放页面上覆盖自定义页面,用cover-view包起来放到video中,如果要滚动的话,用scroll-view
运行到手机基座或者打包时如果报错:
在XX项目中,新增nvue页面,运行到手机基座时,报: X [ERROR] No matching export in "dist/dev/.nvue/xx/xx/videopage.js" for import "default"
14:26:12.787 <stdin>:1:7:
14:26:12.787 1 │ import App from './xx/xx/videopage.js'
14:26:12.787 ╵ ~~~
14:26:12.835 [plugin:uni:app-nvue-esbuild] Build failed with 1 error:
14:26:12.835 <stdin>:1:7: ERROR: No matching export in "dist/dev/.nvue/xx/xx/videopage.js" for import "default"
找到这个报错的前面一个警告,npx 啥啥啥的,(具体我忘了,自己翻翻),直接复制下来,uniapp里面新建终端,把复制的东西粘贴上去,回车运行,然后跟着提示走(中间有一个选择 npm下载,还是pnpm,或者yarn等等啥的;如果用pnpm可能会发生pinia是v3,不兼容,让你改成pinia降级到v2的版本,跟着改也行。或者直接用npm下载,就不会有这个问题)
更多推荐

所有评论(0)