跳到内容

userAgent

userAgent 辅助函数扩展了 Web Request API,并添加了额外的属性和方法,用于与请求中的 user agent 对象进行交互。

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: 一个字符串,表示引擎的名称。可能的值包括:AmayaBlinkEdgeHTMLFlowGeckoGoannaiCabKHTMLLinksLynxNetFrontNetSurfPrestoTasmanTridentw3mWebKitundefined
  • version: 一个字符串,表示引擎的版本;如果无法识别,则为 undefined

os

一个对象,包含有关操作系统的信息。

  • name: 一个字符串,表示操作系统的名称;如果无法识别,则为 undefined
  • version: 一个字符串,表示操作系统的版本;如果无法识别,则为 undefined

cpu

一个对象,包含有关 CPU 架构的信息。

  • architecture: 一个字符串,表示 CPU 的架构。可能的值包括:68kamd64armarm64armhfavria32ia64irixirix64mipsmips64pa-riscppcsparcsparc64undefined