跳到內容

userAgent

userAgent 助手擴充套件了 Web Request API,增加了額外的屬性和方法,用於與請求中的使用者代理物件進行互動。

proxy.ts
import { NextRequest, NextResponse, userAgent } from 'next/server'
 
export function proxy(request: NextRequest) {
  const url = request.nextUrl
  const { device } = userAgent(request)
 
  // device.type can be: 'mobile', 'tablet', 'console', 'smarttv',
  // 'wearable', 'embedded', or undefined (for desktop browsers)
  const viewport = device.type || '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, embedded,或 undefined
  • 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