Vue에서 모바일 기기의 소프트 키보드가 열려있는지 확인하는 방법

less than 1 minute read

<script>
const detectKeyboardOpen = () => {
  const minKeyboardHeight = 300; // 일반적인 최소 키보드 높이 (px)

  return window.screen.height - minKeyboardHeight > window.visualViewport.height;
};

export default {
  name: 'MobileKeyBoardChecker',
  data() {
    return {
      isKeyboardOpen: false,
    };
  },
  created() {
    window.visualViewport.addEventListener('resize', this.checkKeyboardOpen);
  },
  beforeDestroy() {
    window.visualViewport.removeEventListener('resize', this.checkKeyboardOpen);
  },
  methods: {
    checkKeyboardOpen() {
      this.isKeyboardOpen = detectKeyboardOpen();
    },
  },
};
</script>

자꾸 걸리적 거려서 Vue2 mixin으로 만들었다. React 등에서도 응용하여 활용 가능하다.

20240124

Leave a comment