تكرار السؤال: …
الإجابة المختصرة
باستخدام expo-notifications أو Notifee للحصول على تصريح المستخدم، واستخراج Push Token الخاص بالجهاز وإرساله للسيرفر، والاستماع لأحداث النقر على الإشعار للتوجيه المباشر.
الشرح
يتطلب التعامل مع الإشعارات تكوين شهادات APNs لنظام iOS وخدمة Firebase Cloud Messaging (FCM) لنظام Android. عند إقلاع التطبيق، نطلب إذن الإشعارات، ونحصل على Expo Push Token الفريد ونخزنه في قاعدة بيانات الخادم بجانب حساب المستخدم. عند استلام الإشعار، يتم التعامل مع فتح التطبيق من الإشعار عبر addNotificationResponseReceivedListener.
مثال بالكود
import * as Notifications from 'expo-notifications';
async function registerForPushNotifications(): Promise<string | null> {
const { status } = await Notifications.requestPermissionsAsync();
if (status !== 'granted') return null;
const tokenData = await Notifications.getExpoPushTokenAsync();
return tokenData.data; // إرسال هذا التوكن لخادم الـ Backend
}أخطاء شائعة
- تجاهل إعداد قنوات الإشعارات (Notification Channels) الإلزامية في نظام أندرويد، مما يمنع ظهور الإشعارات أو انطلاق أصوات التنبيه.