Files
takerofnotes-website/composables/useDetectOS.js
2026-05-18 15:13:23 -04:00

43 lines
1.4 KiB
JavaScript

import { ref } from 'vue'
export default () => {
const os = ref('Unknown')
const isMobile = ref(false)
const isAndroid = ref(false)
const isIOS = ref(false)
const isMacOS = ref(false)
const isWindows = ref(false)
const isLinux = ref(false)
if (typeof navigator !== 'undefined') {
const userAgent = navigator.userAgent.toLowerCase()
const platform = navigator.platform.toLowerCase()
const detectedAndroid = /android/.test(userAgent)
const detectedIOS = /iphone|ipad|ipod/.test(userAgent)
const detectedMacOS = /mac/.test(platform) && !detectedIOS
const detectedWindows = /win/.test(platform)
const detectedLinux = /linux/.test(platform) && !detectedAndroid
os.value = detectedAndroid
? 'Android'
: detectedIOS
? 'iOS'
: detectedMacOS
? 'macOS'
: detectedWindows
? 'Windows'
: detectedLinux
? 'Linux'
: 'Unknown'
isMobile.value = detectedAndroid || detectedIOS
isAndroid.value = detectedAndroid
isIOS.value = detectedIOS
isMacOS.value = detectedMacOS
isWindows.value = detectedWindows
isLinux.value = detectedLinux
}
return { os, isMobile, isAndroid, isIOS, isMacOS, isWindows, isLinux }
}