ios端只能通过引导开启旋转屏幕!
有些项目需要在横屏状态下展示页面,然而js没有控制设备横屏的api,h5项目想要横屏效果可以通过css3的transform旋转实现,这个百度一下就有了。
重点来了
<view class="full-screen" v-if="isAndroid&&iS_FullScreen">
<button @click="FullScreen">点击全屏游玩</button>
</view>
<view class="proxyFullScreen" v-if="isAndroid&&iS_FullScreen">
<video muted ref="proxyFullScreen"
src="这里放个.mp4文件,你懂吧?"></video>
</view>
<script setup> //能看懂吧
const iS_FullScreen = ref(true)
function FullScreen() {
// iS_FullScreen.value = false 这个在开启全屏前通过v-if销毁video标签,有些不是很流畅的手机没法横屏,实测一些红米手机试过。也不要想着延迟销毁,比较流畅的手机会退出横屏,实测iq这个专门打游戏的手机就会。
openFullscreen()
}
// 开启全屏
function openFullscreen() {
let elem = document.documentElement;
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) {
/* Firefox */
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
/* Chrome, Safari and Opera */
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) {
/* IE/Edge */
elem.msRequestFullscreen();
}
iS_FullScreen.value = false//这里倒是是可以
}
</script>
video标签有个全屏播放的效果,全屏播放还可以实现横屏(反正就是设备状态栏发生改变了),如果没有video标签的效果就是只能实现全屏,没有横屏。这里的狗屁原理没去深究。我估计是elem.requestFullscreen()的时候开启的的video的全屏。 cv工程师看这句话:我推测是依据是:src="这里放个.mp4文件,你懂吧?"放是视频是竖屏录的就不会发生横屏转换,而横屏录的视频时开启全屏会自动发生横屏。
在安卓中使用这样的方法更像是卡bug,在借用video开启横屏的瞬间把video销毁。经测试部分浏览器是无效的:华为自带浏览器,小米自带浏览器。其他的浏览器也行,在微信里也可以。
下一个开发问题关于ios调起微信支付强行锁竖屏还有些没研究明白留着下一篇吧