basic setup
This commit is contained in:
42
composables/useDetectOS.js
Normal file
42
composables/useDetectOS.js
Normal file
@@ -0,0 +1,42 @@
|
||||
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 }
|
||||
}
|
||||
Reference in New Issue
Block a user