-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.vue
More file actions
41 lines (35 loc) · 1.16 KB
/
app.vue
File metadata and controls
41 lines (35 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<script setup lang="ts">
import { Desktop, Mobile } from "#components";
import { HeadData } from "./content/head/HeadData";
const nuxt = useNuxtApp();
function getDeviceInfo() {
let userAgent = nuxt.ssrContext?.event.headers.get("User-Agent") ?? navigator.userAgent ?? "";
if (/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(userAgent)) {
return UserDeviceTypes.Mobile;
} else {
return UserDeviceTypes.Desktop;
}
}
provide("deviceType", getDeviceInfo());
useHead({
title: HeadData.title,
meta: [
{ name: 'description', content: HeadData.description },
{ name: 'og:image', content: "/favicon.ico" },
{ name: 'viewport', content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' },
{ name: 'mobile-web-app-capable', content: 'yes' }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
]
});
</script>
<template>
<NuxtPwaManifest/>
<div v-if="getDeviceInfo() == UserDeviceTypes.Desktop">
<Desktop/>
</div>
<div v-else>
<Mobile/>
</div>
</template>