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
: 一个字符串,表示设备的类型,例如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
、WebKit
或undefined
。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
、sparc64
或undefined
这篇文章对您有帮助吗?