メインコンテンツまでスキップ

userAgent

userAgent ヘルパーは、リクエストのユーザーエージェントオブジェクトとやりとりするための追加のプロパティとメソッドで Web リクエスト 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のアーキテクチャを表す文字列で、次のような値になることが想定されます: 68kamd64armarm64armhfavria32ia64irixirix64mipsmips64pa-riscppcsparcsparc64、 または undefined