
在 Nuxt 应用程序中检测设备类型。
npx nuxi@latest module add device
!注意 您可以在
2.x分支上找到该模块的 Nuxt 2 版本。
您可以使用以下标志来检测设备类型
$device.isDesktop$device.isMobile$device.isTablet$device.isMobileOrTablet$device.isDesktopOrTablet$device.isIos$device.isWindows$device.isMacOS$device.isApple$device.isAndroid$device.isFirefox$device.isEdge$device.isChrome$device.isSafari$device.isSamsung$device.isCrawler用户代理也已注入,可通过 $device.userAgent 访问。
爬虫检测由 crawler-user-agents 包提供支持。
您可以在 script setup 中使用 useDevice() 可组合函数,也可以直接在模板中使用 $device 辅助函数
<template>
<div>
<div v-if="$device.isDesktop">Desktop</div>
<div v-else-if="$device.isTablet">Tablet</div>
<div v-else>Mobile</div>
</div>
</template>
<script setup>
const { isMobile } = useDevice()
</script>
<template>
<div>
<NuxtLayout :name="$device.isMobile ? 'mobile' : 'default'">
<!-- page content -->
</NuxtLayout>
</div>
</template>
<script setup>
definePageMeta({
layout: false
})
</script>
defaultUserAgent设置 user-agent 头部的默认值(在运行 npm run generate 时很有用)。
默认值:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.39 Safari/537.36
enabled有条件地启用模块。
默认值: true
!警告 此选项已弃用。它将在下一个主要版本中删除。
refreshOnResize在窗口调整大小时刷新标志。
默认值:false
!警告 此选项已弃用。它将在下一个主要版本中删除。
如果用户代理是 Amazon CloudFront,则模块会检查以下头部信息
CloudFront-Is-Android-ViewerCloudFront-Is-Desktop-ViewerCloudFront-Is-IOS-ViewerCloudFront-Is-Mobile-ViewerCloudFront-Is-Tablet-Viewer在 Amazon CloudFront 文档中阅读有关确定查看器设备类型的更多信息。
!注意
isWindows和isMacOS标志在 Amazon CloudFront 中不可用。
此模块会检查 CF-Device-Type 头部。
在 Cloudflare 文档中阅读有关设备类型检测的更多信息。