CatPtain's picture
Upload 339 files
89ce340 verified
raw
history blame
1.1 kB
import { onMounted, onUnmounted, ref } from 'vue'
import { isFullscreen, exitFullscreen } from '@/utils/fullscreen'
import useScreening from '@/hooks/useScreening'
export default () => {
const fullscreenState = ref(true)
const escExit = ref(true)
const { exitScreening } = useScreening()
const handleFullscreenChange = () => {
fullscreenState.value = isFullscreen()
if (!fullscreenState.value && escExit.value) exitScreening()
escExit.value = true
}
onMounted(() => {
fullscreenState.value = isFullscreen()
document.addEventListener('fullscreenchange', handleFullscreenChange)
document.addEventListener('webkitfullscreenchange', handleFullscreenChange) // Safari 兼容
})
onUnmounted(() => {
document.removeEventListener('fullscreenchange', handleFullscreenChange)
document.removeEventListener('webkitfullscreenchange', handleFullscreenChange)
})
const manualExitFullscreen = () => {
if (!fullscreenState.value) return
escExit.value = false
exitFullscreen()
}
return {
fullscreenState,
manualExitFullscreen,
}
}