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

userAgent

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

middleware.ts
import { NextRequest, NextResponse, userAgent } from 'next/server'

// ミドルウェア関数を定義
export function middleware(request: NextRequest) {
const url = request.nextUrl
// userAgentからデバイス情報を取得
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