コンテンツへスキップ

userAgent

userAgentヘルパーは、Web Request APIを拡張し、リクエストからのユーザーエージェントオブジェクトと対話するための追加プロパティとメソッドを提供します。

middleware.ts
import { NextRequest, NextResponse, userAgent } from 'next/server'
 
export function middleware(request: NextRequest) {
  const url = request.nextUrl
  const { device } = userAgent(request)
  const viewport = device.type === 'mobile' ? 'mobile' : 'desktop'
  url.searchParams.set('viewport', viewport)
  return NextResponse.rewrite(url)
}

isBot

リクエストが既知のボットからのものかどうかを示す真偽値。

browser

リクエストで使用されたブラウザに関する情報を含むオブジェクト。

  • name: ブラウザ名を表す文字列。識別できない場合はundefined
  • version: ブラウザのバージョンを表す文字列、またはundefined

device

リクエストで使用されたデバイスに関する情報を含むオブジェクト。

  • model: デバイスのモデルを表す文字列、またはundefined
  • type: デバイスのタイプを表す文字列。`console`、`mobile`、`tablet`、`smarttv`、`wearable`、`embedded`のいずれか、またはundefined
  • vendor: デバイスのベンダーを表す文字列、またはundefined

engine

ブラウザのエンジンに関する情報を含むオブジェクト。

  • name: エンジン名を表す文字列。取り得る値は、`Amaya`、`Blink`、`EdgeHTML`、`Flow`、`Gecko`、`Goanna`、`iCab`、`KHTML`、`Links`、`Lynx`、`NetFront`、`NetSurf`、`Presto`、`Tasman`、`Trident`、`w3m`、`WebKit`のいずれか、またはundefined
  • version: エンジンのバージョンを表す文字列、またはundefined

os

オペレーティングシステムに関する情報を含むオブジェクト。

  • name: OS名を表す文字列、またはundefined
  • version: OSのバージョンを表す文字列、またはundefined

cpu

CPUアーキテクチャに関する情報を含むオブジェクト。

  • architecture: CPUのアーキテクチャを表す文字列。取り得る値は、`68k`、`amd64`、`arm`、`arm64`、`armhf`、`avr`、`ia32`、`ia64`、`irix`、`irix64`、`mips`、`mips64`、`pa-risc`、`ppc`、`sparc`、`sparc64`のいずれか、またはundefined