透過 100 多個技巧學習 Nuxt!

@nuxtjs/device

Nuxt 的裝置偵測模組

Nuxt banner

Nuxt 裝置

npm version npm downloads License Nuxt

在您的 Nuxt 應用程式中偵測裝置類型。

請參閱 CodeSandbox 上的示範

安裝

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() composable,或直接在範本中使用 $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 支援

如果使用者代理程式是 Amazon CloudFront,模組會檢查以下標頭

  • CloudFront-Is-Android-Viewer
  • CloudFront-Is-Desktop-Viewer
  • CloudFront-Is-IOS-Viewer
  • CloudFront-Is-Mobile-Viewer
  • CloudFront-Is-Tablet-Viewer

請閱讀 Amazon CloudFront 文件,瞭解更多關於如何判斷檢視器裝置類型資訊。

!注意 isWindowsisMacOS 標記在 Amazon CloudFront 中不可用。

Cloudflare 支援

此模組會檢查 CF-Device-Type 標頭。

請閱讀 Cloudflare 文件,瞭解更多關於裝置類型偵測資訊。

授權

MIT 授權