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,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。
這有幫助嗎?