JavaScript를 사용하여 클라이언트가 iOS인지 Android인지 확인

4051 단어 javascript

소개.



이 기능의 내용
  • ES2015 화살표 기능을 사용하십시오.
  • 브라우저에 웹페이지가 표시될 때 사용자 에이전트를 기반으로 액세스 소스의 OS가 결정됩니다.
  • 정규식을 사용하여 iOS, Android 및 기타 운영 체제를 반영합니다
  • .

    각 OS에 대한 사용자 에이전트는 here에서 사용할 수 있습니다.

    iPad는 이제 13부터 iOS가 아닌 iPadOS이며, PC용 웹사이트를 표시하도록 설정한 경우 UserAgent에 iPad가 포함되지 않으므로 까다로운 결정을 내려야 합니다.
    참조: https://stackoverflow.com/a/57924983/4480860

    const getMobileOS = () => {
      const ua = navigator.userAgent
      if (/android/i.test(ua)) {
        return "Android"
      }
      else if (/iPad|iPhone|iPod/.test(ua))
         || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1){
        return "iOS"
      }
      return "Other"
    }
    

    용법



    const os = getMobileOS()
    # console.log(os) => 'Android'
    # console.log(os) => 'iOS'
    # console.log(os) => 'Other'
    

    보충 정규식에 대한 설명



    설명된 기능에 사용된 /android/i.test(ua)의 예
  • /android/는 정규식
  • 의 본문입니다.
  • /android/i의 "i"는 정규식 플래그이며 대소문자를 감지하지 않습니다.
  • Android, ANDROID 및 aNdRoId와 호환됩니다.
  • /android/i는 문자열의 대소문자에 관계없이 유효성을 검사할 문자열의 일부에 "android"가 포함되어 있는지 확인합니다.

  • /android/i.test(ua)의 테스트 메서드는 인수true/false에 포함된 문자열이 ua의 정규식에 맞는지 여부를 /android/i 반환합니다.
  • 좋은 웹페이지 즐겨찾기