userAgent
userAgent 輔助工具擴展了 Web Request API,提供額外屬性和方法來與請求中的使用者代理物件互動。
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)
}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: 代表瀏覽器名稱的字串,若無法識別則為undefinedversion: 代表瀏覽器版本的字串,若無法識別則為undefined
device
一個包含請求中使用裝置資訊的物件。
model: 代表裝置型號的字串,若無法識別則為undefinedtype: 代表裝置類型的字串,可能值包括:console,mobile,tablet,smarttv,wearable,embedded或undefinedvendor: 代表裝置供應商的字串,若無法識別則為undefined
engine
一個包含瀏覽器引擎資訊的物件。
name: 代表引擎名稱的字串。可能值包括:Amaya,Blink,EdgeHTML,Flow,Gecko,Goanna,iCab,KHTML,Links,Lynx,NetFront,NetSurf,Presto,Tasman,Trident,w3m,WebKit或undefinedversion: 代表引擎版本的字串,若無法識別則為undefined
os
一個包含作業系統資訊的物件。
name: 代表作業系統名稱的字串,若無法識別則為undefinedversion: 代表作業系統版本的字串,若無法識別則為undefined
cpu
一個包含 CPU 架構資訊的物件。
architecture: 代表 CPU 架構的字串。可能值包括:68k,amd64,arm,arm64,armhf,avr,ia32,ia64,irix,irix64,mips,mips64,pa-risc,ppc,sparc,sparc64或undefined