Nuxt Nation カンファレンスが開催されます。11月12日~13日にご参加ください。

@nuxtjs/device

Nuxt 用デバイス検出モジュール

Nuxt banner

Nuxt Device

npm version npm downloads License Nuxt

Nuxt アプリケーションでデバイスの種類を検出します。

CodeSandbox でのデモをご覧ください。

インストール

npx nuxi@latest module add device

!NOTE このモジュールの Nuxt 2 バージョンは、2.x ブランチにあります。

フラグ

次のフラグを使用して、デバイスの種類を検出できます。

  • $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

!WARNING このオプションは非推奨です。次のメジャーリリースで削除されます。

refreshOnResize

ウィンドウのリサイズ時にフラグを更新します。

デフォルト: false

!WARNING このオプションは非推奨です。次のメジャーリリースで削除されます。

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 のドキュメントを参照してください。

!CAUTION isWindows および isMacOS フラグは Amazon CloudFront では使用できません。

Cloudflare のサポート

このモジュールは、CF-Device-Type ヘッダーを確認します。

デバイスタイプの検出について詳しくは、Cloudflare のドキュメントを参照してください。

ライセンス

MIT License