使用者代理 (userAgent)
userAgent
輔助函式擴展了 Web 請求 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)
}
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
一個包含 CPU 架構資訊的物件。
architecture
:一個表示 CPU 架構的字串。可能的值包括:68k
、amd64
、arm
、arm64
、armhf
、avr
、ia32
、ia64
、irix
、irix64
、mips
、mips64
、pa-risc
、ppc
、sparc
、sparc64
或undefined
(未定義)。
這有幫助嗎?