[Vue.js] User-Agent를 활용하여 iOS, Android 구분하기

2023. 11. 2. 14:42· Vue.js
목차
  1. [들어가기 전에]
  2. [User-Agent]
  3. [구현]

[들어가기 전에]

아니 글쎄 블로그 쓰려고 AOS라는 단어를 찾아봤는데 비공식적인 명칭이더라고요,,,

특히 한국에서만 자주 쓰는 용어라고 해서 Android라고 적어봤습니다!

 

개발을 하다 보면 사용자의 운영체제에 따라 다르게 작동하는 기능이 필요할 때가 있죠.

아이폰이면 앱 스토어로 이동, 갤럭시면 Google Play 스토어로 이동하는 것이 그 예시입니다.

물론 iOS, Android 둘 다 네이티브로 개발을 하면 상관은 없지만... 크로스 플랫폼이나 하이브리드 같은 경우에는 운영체제 구분을 해야 합니다.

 

그럴 때 User-Agent를 사용하면 됩니다!

[User-Agent]

먼저 User-Agent가 뭔지 콘솔로 찍어볼게요.

음... 뭔가 Window 10 운영체제에서 Chrome 브라우저를 사용하고 있다는 거 같죠?

 

이렇듯 User-Agent는 웹 브라우저가 서버에게 자신을 어떻게 표현할지 알려주는 문자열입니다.

이 문자열에는

  • 📌 브라우저 이름
  • 📌 버전
  • 📌 호스트 운영 체제
  • 📌 브라우저가 이해할 수 있는 웹 콘텐츠 형식

의 정보를 담고 있습니다.

 

따라서, User-Agent를 사용해서 iOS인지 Andriod인지 파악할 수 있겠죠?

[구현]

제가 서두에 말한 '아이폰이면 앱 스토어로 이동, 갤럭시면 Google Play 스토어로 이동' 기능을 구현한 코드는 다음과 같아요.

import { ref } from 'vue';

export default {
  setup() {
    const userAgent = ref(navigator.userAgent);

    const isIOS = () => {
      return ['iPhone', 'iPad', 'iPod'].some(device => userAgent.value.includes(device));
    };

    const isAndroid = () => {
      return userAgent.value.includes('Android');
    };

    const goToAppStore = () => {
      let appStoreLink;

      if (isIOS()) {
        // iOS 앱 스토어 링크
        appStoreLink = 'https://apps.apple.com/your-app-id';
      } else if (isAndroid()) {
        // Google Play 스토어 링크
        appStoreLink = 'https://play.google.com/store/apps/details?id=your.package.name';
      }

      if (appStoreLink) {
        // 앱 스토어 링크로 이동
        window.location.href = appStoreLink;
      } else {
        // 기기를 구분할 수 없는 경우 또는 지원하지 않는 기기인 경우
        alert('지원하지 않는 기기입니다.');
      }
    };

    return { goToAppStore };
  }
}

정의한 goToAppStore 함수를 template단에서 호출하면 끝입니다 끝! 😎

<template>
  <button @click="goToAppStore">앱 스토어로 이동</button>
</template>
저작자표시 (새창열림)

'Vue.js' 카테고리의 다른 글

[Vue.js] localStorage와 sessionStorage로 웹 스토리지 활용하기  (0) 2023.10.23
[Vue.js] provide와 inject 사용 방법  (0) 2023.10.20
[Vue.js] mitt 라이브러리로 이벤트 핸들링하기  (0) 2023.10.13
[Vue.js] .env 파일로 환경 변수 관리하기  (0) 2023.10.04
[Vue.js] v-slot으로 컴포넌트 효율적으로 사용하기  (0) 2023.09.25
  1. [들어가기 전에]
  2. [User-Agent]
  3. [구현]
'Vue.js' 카테고리의 다른 글
  • [Vue.js] localStorage와 sessionStorage로 웹 스토리지 활용하기
  • [Vue.js] provide와 inject 사용 방법
  • [Vue.js] mitt 라이브러리로 이벤트 핸들링하기
  • [Vue.js] .env 파일로 환경 변수 관리하기
eunex
eunex
eunex
성장하는 자기개발자
eunex
전체
오늘
어제
  • 분류 전체보기
    • jQuery
    • JavaScript
    • Vue.js
    • React
    • iOS
    • 자격증
    • Algorithm
    • Python
    • 회고
    • CS
    • 정보처리기사 실기
    • JSP
    • 은행실무기초

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발자
  • ref
  • 상반기
  • watch
  • Reactive
  • watchEffect
  • proxy
  • ADsP
  • SQLD
  • vue
  • computed
  • 자격증
  • 회고

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
eunex
[Vue.js] User-Agent를 활용하여 iOS, Android 구분하기

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.