跳到内容

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

os

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

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

cpu

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

  • architecture:一个字符串,表示 CPU 架构。可能的值包括:68kamd64armarm64armhfavria32ia64irixirix64mipsmips64pa-riscppcsparcsparc64,如果无法识别,则为 undefined