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)

  // device.type يمكن أن يكون: 'mobile', 'tablet', 'console', 'smarttv',
  // 'wearable', 'embedded', أو غير محدد (لمتصفحات سطح المكتب)
  const viewport = device.type || '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)

  // device.type يمكن أن يكون: 'mobile', 'tablet', 'console', 'smarttv',
  // 'wearable', 'embedded', أو غير محدد (لمتصفحات سطح المكتب)
  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

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

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