MtaMpHtml.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <template>
  2. <mp-html @fullscreenchange="handleFullscreen" :content="props.content" />
  3. </template>
  4. <script setup>
  5. import {
  6. ref,
  7. onMounted,
  8. onUnmounted
  9. } from "vue";
  10. import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'
  11. const isFullscreen = ref(false)
  12. const props = defineProps({
  13. content: {
  14. type: String,
  15. default: ''
  16. }
  17. })
  18. onMounted(() => {
  19. // 监听全屏变化
  20. document.addEventListener('fullscreenchange', handleFullscreenChange)
  21. document.addEventListener('webkitfullscreenchange', handleFullscreenChange)
  22. })
  23. function handleFullscreen(e) {
  24. // 处理全屏事件
  25. isFullscreen.value = e.detail.fullscreen
  26. }
  27. function handleFullscreenChange() {
  28. // 检查当前是否处于全屏状态
  29. const fullscreenElement = document.fullscreenElement ||
  30. document.webkitFullscreenElement
  31. if (!fullscreenElement) {
  32. // 如果退出全屏
  33. isFullscreen.value = false
  34. }
  35. }
  36. onUnmounted(() => {
  37. document.removeEventListener('fullscreenchange', handleFullscreenChange)
  38. document.removeEventListener('webkitfullscreenchange', handleFullscreenChange)
  39. })
  40. </script>