Skip to main content

مقدمة

يُرسِل Atelerix إشعارات الويب باستخدام بروتوكول Web Push القياسي (VAPID) — نفس المعيار المفتوح الذي تطبّقه Chrome وFirefox وEdge وSafari الحديث أصلياً. بدون مشروع Firebase، بدون حساب OneSignal — يُنشئ Atelerix زوج المفاتيح ويديره نيابةً عنك.
هذه حزمة منفصلة عن SDK الخاص بـ Flutter — lerix_web_notification مكتبة JS/TS صغيرة ومستقلة عن أي إطار عمل، مخصّصة لتطبيقات الويب غير المبنية بـ Flutter (React، Vue، HTML عادي، إلخ). إذا كان تطبيقك مبنياً بـ Flutter — بما في ذلك Flutter Web — لا تستخدم هذه الحزمة؛ حزمة atelerix الخاصة بـ Flutter تدعم iOS وAndroid والويب أصلياً من حزمة واحدة وبـ API واحد. راجع Flutter — الإشعارات بدلاً من ذلك.

1. التثبيت

أو أضف السكربت الجاهز مباشرة إلى الصفحة بدون خطوة بناء (build):

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

يتطلّب Web Push ملف عامل خدمة (service worker) يُقدَّم من نفس أصل موقعك — لا يمكن لاستيراد <script> عادي تسجيل واحد نيابةً عنك. انسخ node_modules/lerix_web_notification/sw/atelerix-sw.js إلى جذر موقعك العام بحيث يكون متاحاً على https://yoursite.com/atelerix-sw.js (أي مسار آخر يعمل أيضاً، طالما مرّرته إلى subscribe() إن لم يكن في هذا المسار الافتراضي).

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

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

4. استخدمها

API

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

يستقبل كلا الاستدعائين كائناً من نوع AtelerixNotificationPayload — بنفس الشكل الذي يستخدمه نموذج SDK الخاص بـ Flutter:

إرسال صورة

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

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

اضبط metadata عند الإرسال — تصل إلى الصفحة داخل payload.metadata، لتوجيه الضغط على الإشعار إلى عرض معيّن داخل التطبيق مثلاً. راجع إرسال بيانات وصفية لتفاصيل المعامل الكاملة (متطابقة عبر كل المنصات).
الصوت المخصّص غير مدعوم لإشعارات الويب. لا توفّر واجهة Web Notifications طريقة موحّدة عبر المتصفحات لتحديد صوت إشعار مخصّص، لذا يُتجاهَل معامل sound في لوحة التحكم/الـ API بالنسبة لمستلمي الويب — يُطبَّق فقط على iOS وAndroid.

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

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

Flutter Web

لا تستخدم JS SDK هذا لتطبيق Flutter، حتى لو كان بناء Flutter Web — حزمة atelerix الخاصة بـ Flutter تدعم iOS وAndroid والويب أصلياً من حزمة واحدة، وتتواصل مباشرةً مع Push API الخاصة بالمتصفح بدون أي اعتماد JS منفصل إطلاقاً. نفس استدعاءات Atelerix.notifications.*، ونفس شكل AtelerixNotificationPayload، على كل منصة:
راجع Flutter — الإشعارات لخطوات إعداد Flutter Web (خطوتان فقط) والفروقات البسيطة بين المنصات التي يجدر معرفتها.