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)
  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, embeddedundefined
  • vendor: 代表裝置供應商的字串,若無法識別則為 undefined

engine

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

  • name: 代表引擎名稱的字串。可能值包括: Amaya, Blink, EdgeHTML, Flow, Gecko, Goanna, iCab, KHTML, Links, Lynx, NetFront, NetSurf, Presto, Tasman, Trident, w3m, WebKitundefined
  • version: 代表引擎版本的字串,若無法識別則為 undefined

os

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

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

cpu

一個包含 CPU 架構資訊的物件。

  • architecture: 代表 CPU 架構的字串。可能值包括: 68k, amd64, arm, arm64, armhf, avr, ia32, ia64, irix, irix64, mips, mips64, pa-risc, ppc, sparc, sparc64undefined

On this page