Menu

userAgent

userAgent 助手扩展了 Web Request API,提供了额外的属性和方法来与请求中的用户代理对象进行交互。

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);
}
middleware.js
import { NextResponse, userAgent } from "next/server";
 
export function middleware(request) {
  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: 表示设备类型的字符串,如 consolemobiletabletsmarttvwearableembeddedundefined
  • vendor: 表示设备供应商的字符串,如果无法识别则为 undefined

engine

一个对象,包含有关浏览器引擎的信息。

  • name: 表示引擎名称的字符串。可能的值包括:AmayaBlinkEdgeHTMLFlowGeckoGoannaiCabKHTMLLinksLynxNetFrontNetSurfPrestoTasmanTridentw3mWebKitundefined
  • version: 表示引擎版本的字符串,如果无法识别则为 undefined

os

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

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

cpu

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

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