コンテンツにスキップ

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: デバイスのタイプを表す文字列 (例: consolemobiletabletsmarttvwearableembedded)。または undefined
  • vendor: デバイスのベンダーを表す文字列。または undefined

engine

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

  • name: エンジンの名前を表す文字列。可能な値は、AmayaBlinkEdgeHTMLFlowGeckoGoannaiCabKHTMLLinksLynxNetFrontNetSurfPrestoTasmanTridentw3mWebKit または 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 です。