وكيل المستخدم (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: سلسلة نصية تمثل اسم المتصفح، أو 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

كائن يحتوي على معلومات عن بنية المعالج.

  • architecture: سلسلة نصية تمثل بنية المعالج. القيم المحتملة تشمل: 68k، amd64، arm، arm64، armhf، avr، ia32، ia64، irix، irix64، mips، mips64، pa-risc، ppc، sparc، sparc64 أو undefined.