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