userAgent

userAgent 輔助工具擴展了 Web Request API,提供額外屬性和方法來與請求中的使用者代理物件互動。

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

export function middleware(request: NextRequest) {
  const url = request.nextUrl
  const { device } = userAgent(request)

  // device.type 可能為: 'mobile', 'tablet', 'console', 'smarttv',
  // 'wearable', 'embedded', 或 undefined (桌面瀏覽器)
  const viewport = device.type || 'desktop'

  url.searchParams.set('viewport', viewport)
  return NextResponse.rewrite(url)
}

isBot

布林值,表示請求是否來自已知的爬蟲程式。

browser

包含請求中使用瀏覽器資訊的物件。

  • name: 字串,表示瀏覽器名稱,若無法識別則為 undefined
  • version: 字串,表示瀏覽器版本,若無法識別則為 undefined

device

包含請求中使用裝置資訊的物件。

  • model: 字串,表示裝置型號,若無法識別則為 undefined
  • type: 字串,表示裝置類型,可能值為 consolemobiletabletsmarttvwearableembeddedundefined
  • vendor: 字串,表示裝置製造商,若無法識別則為 undefined

engine

包含瀏覽器引擎資訊的物件。

  • name: 字串,表示引擎名稱。可能值包括: AmayaBlinkEdgeHTMLFlowGeckoGoannaiCabKHTMLLinksLynxNetFrontNetSurfPrestoTasmanTridentw3mWebKitundefined
  • version: 字串,表示引擎版本,若無法識別則為 undefined

os

包含作業系統資訊的物件。

  • name: 字串,表示作業系統名稱,若無法識別則為 undefined
  • version: 字串,表示作業系統版本,若無法識別則為 undefined

cpu

包含 CPU 架構資訊的物件。

  • architecture: 字串,表示 CPU 架構。可能值包括: 68kamd64armarm64armhfavria32ia64irixirix64mipsmips64pa-riscppcsparcsparc64undefined

On this page