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