Skip to main content

مقدمة

يُرسِل Lerix الإشعارات إلى تطبيقات Next.js باستخدام بروتوكول Web Push القياسي (VAPID) — نفس المعيار المفتوح الذي تطبّقه Chrome وFirefox وEdge وSafari الحديث أصلياً. بدون مشروع Firebase، بدون حساب OneSignal — يُنشئ Lerix زوج المفاتيح ويديره نيابةً عنك. بعد إتمام تثبيت Next.js، اتّبع الخطوات أدناه لتفعيل تسليم الإشعارات.
تأكّد من أن تطبيقك مغلّف بـ LerixNextProvider قبل إعداد الإشعارات.

1. انسخ عامل الخدمة (service worker)

يتطلّب Web Push ملف عامل خدمة يُقدَّم من نفس أصل تطبيقك — لا يمكن لحزمة إضافة هذا الملف إلى تطبيقك تلقائياً. انسخه إلى مجلد public الخاص بك بحيث يكون متاحاً على جذر موقعك:

2. أنشئ مفتاح Web Push

من لوحة التحكم: الإشعارات ← الإعدادات ← Web Push ← إنشاء المفاتيح. هذه خطوة بنقرة واحدة — يُنشئ Lerix زوج مفاتيح VAPID ويخزّنه للمشروع؛ لا حاجة لنسخ أي شيء في كودك.

3. اشترك

تطلب subscribe() إذن الإشعارات، وتسجّل عامل الخدمة، وتشترك في هذا المتصفح للإشعارات، وتسجّل الاشتراك لدى الخادم — استدعاء واحد للتدفّق بأكمله.

البيانات (Payload) المُستلَمة مع الإشعار

معرّفات الجهاز

ترجع الدوال الثلاث جميعها null حتى تكتمل subscribe() مرة واحدة على الأقل.

إرسال بيانات وصفية (Metadata)

إرسال صورة

اضبط imageUrl عند الإرسال. يعمل هذا تلقائياً دون أي إعداد إضافي: يعرض عامل الخدمة الصورة مباشرة كأيقونة/صورة الإشعار.
الصوت المخصّص غير مدعوم في إشعارات الويب. لا تتيح واجهة Web Notifications API طريقة لضبط صوت إشعار مخصّص عبر المتصفحات — ينطبق معامل sound فقط على iOS وAndroid.

استهدف مستخدماً على كل أجهزته

إذا كان منتجك يعمل أيضاً على منصات أخرى (الويب أو الجوال أو سطح المكتب)، فأضِفها إلى نفس المشروع واربط كل تثبيت بمعرّف المستخدم الخاص بك بعد تسجيل الدخول. عندها يستطيع الباك إند الخاص بك الإرسال إلى externalUserIds والوصول إلى هذا الشخص على كل أجهزته في طلب واحد.
راجع تعريف المستخدمين للتحقق من الهوية ومثال على الإرسال.

المواضيع (Topics)

للإرسال إلى موضوع، استخدم تبويب إرسال إشعار في لوحة التحكم (اختر “Topic” كجمهور مستهدف)، أو استدعِ REST API مع sendByTopic: true.

دعم المتصفحات

تدعم Chrome وFirefox وEdge خدمة Web Push بشكل كامل. يتطلّب Safari macOS 13+‎ أو iOS 16.4+‎ — إصدارات Safari الأقدم لا تدعم المعيار إطلاقاً.