پش نوٹیفکیشنز وے پیغام ہیں جو سرور موبائل ڈائیوس پر اس وقت بھی بھیجتا ہے جب ایپ بند ہو۔ Google Firebase, 2024 کے مطابق، پش نوٹیفکیشنز کو خاص سروسسز — Android پر FCM اور iOS پر APNS — کے ذریعے پروسیس کیا جاتا ہے، جو بہت سارے آلات پر ایک ساتھ حقیقی وقت میں ٹرانسمشن کی حمایت کرتے ہیں۔ وے جدید موبائل ایپلیکیشنز میں صارف کے تجربے کا ایک لازمی حصہ بن چہے ہیں۔
اہم نکات
پش نوٹیفکیشنز مختصر پیغام ہیں جو ایپ سرور صارف کے آلہ پر بغیر کسی واضح درخواست کے بھیجتا ہے۔ وے بینرز، آئیکن بیج یا آوازی سیگنل کی شکل میں ظاہر ہوتے ہیں، صارف کی تواجہ ایپ کی طرف کھینچتے ہیں اور اہم واقعات کے بارے میں مطلع کرتے ہیں۔
ایک پش نوٹیفکیشن ایک سرخی، پیغام کا متن اور اختیاری ڈیٹا (payload) پر مشتمل ہۈ۔ SMS کے برعکس، پش نوٹیفکیشنز صارف کے لیے مفت ہیں اور کلاؤڈ سروسسز بنیادی چھتہ — Android کے لیے FCM اور iOS کے لیے APNS — کے ذریعے پہنچائے جاتے ہیں۔ پش نوٹیفکیشنز کے اہداف: مصروفیت بڑھانا، واقعات کے بارے میں مطلع کرنا اور صارف کو ایپ میں واپس لانا۔
استعمال کے انکیوں سے پتہ چلتا ہے کہ مناسب طریقے سے ترتیب دادہ پش نوٹیفکیشنز ایپ ریٹنشن کو 30–60% تک بڑھاتے ہیں۔ تاہم، ضرورت سے زیادہ نوٹیفکیشن فریکوینسی ان سبسکرائب کا سبب بنتی ہے — 60% سے زیادہ صارف نوٹیفکیشنز کو بند کر دیتے ہیں اگر وے دن میں تین بار سے زیادہ بھیجے جائیں۔
ایک پش سیسٹم میں تین اجزاء شامل ہیں: ایپ سرور، پلیٹ فارم سروس (FCM/APNS) اور آلہ پر کلائینٹ ایپلیکیشن۔ سرور پلیٹ فارم سروس کو ایک درخواست بھیجتا ہے، جو آپریٹنگ سیسٹم کے ساتھ مسلسل کنیکشن کے ذریعے ہدف آلہ پر نوٹیفکیشن پہنچاتا ہے۔
پش نوٹیفکیشنز کا ٹرانسمشن میکانزم آلہ اور پلیٹ فارم سروس کے درمیان مسلسل کنیکشن پر مبنی ہے۔ آپریٹنگ سیسٹم ایک خفیہ کردہ مواصلاتی چینل برقرار رکھتا ہے جس سے تمام پش پیغام گزرتے ہیں۔
پہلی بار لائیچ کرنے پر، ایپ نوٹیفکیشن بھیجنے کی اجازت مانگتا ہے اور FCM یا APNS سے ایک منفرد آلہ ٹوکن حاصل کرتا ہے۔ یہ ٹوکن 4 KB تک کا ایک سٹرنگ ہے جو ایٹ اِنسٹنس کی منفرد شناخت کرتا ہے۔ ایپ دوبارہ انسٹل کرنے یا آلہ کو بیک اپ سے بحال کرنے پر ٹوکن بدل جاتا ہے۔
class FirebaseMessagingService :
FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendTokenToServer(token)
}
override fun onMessageReceived(
message: RemoteMessage
) {
showNotification(message.notification)
}
}
ایپ سرور FCM API یا APNS API کو ایک HTTP درخواست بھیجتا ہے، جس میں ہدف ٹوکن، سرخی، متن اور اضافی ڈیٹا متعین کیا جاتا ہے۔ پلیٹ فارم سروس ٹرانسمشن سٹیٹس کے ساتھ جواب دیتا ہے: کامیابی، ناقابل ٹوکن (آلہ نے ایپ ان انسٹل کر دیا) یا ریٹ لمیٹیڈ (بھیجنے کی فریکوینسی سے تجاوز)۔
fetch("https://fcm.googleapis.com/fcm/send", {
method: "POST",
headers: {
"Authorization": "key=AIzaSy...",
"Content-Type": "application/json"
},
body: JSON.stringify({
to: "device_token_here",
notification: {
title: "نیا پیغام",
body: "آپ کے پاس ایک نیا نوٹیفکیشن ہے!"
}
})
})
FCM اور APNS کے درمیان انتخاب ہدف پلیٹ فارم پر منحصر ہے۔ FCM Android اور iOS کی حمایت کرتا ہے، جبکہ APNS صرف Apple ایکو سسٹم کی حمایت کرتا ہے۔ کراس پلیٹ فارم موبائل ایپ ڈیولپمنٹ کے لیے اہم بنیادی اختلافات کا جائزہ لیتے ہیں۔
FCM ایک Google سروس ہے جو Google Play Services کے اوپر کام کرتا ہے۔ یہ دو ٹرانسمشن اسکیم کی حمایت کرتا ہے: خودکار ظاہری کے ساتھ نوٹیفکیشنز اور ڈیٹا نوٹیفکیشنز جیسے ایپ خود سنبھالتا ہے۔ FCM مفت ہے اور بھیجے گئے پیغاموں کی تعداد پر کوئی پابندی نہیں ہے۔
APNS Apple کا سروس ہے جو 10 MB تک کے ملٹی میڈیا اٹیچمنٹس (تصویریں، ویڈیو، آڈیو) کی حمایت کرتا ہے۔ APNS کے ذریعے بھیجنے کے لیے TLS سرٹفکیٹ یا مصداقہ کی کنجی درکار ہے۔ APNS ایک آلہ کو بھیجنے کی فریکوینسی کو محدود کرتا ہے — فی منٹ 150 سے زیادہ نوٹیفکیشنز نہیں، جس کے بعد ریٹ لمیٹنگ لاگو ہوجاتی ہے۔
| خاصیت | FCM | APNS |
|---|---|---|
| پلیٹ فارمز | Android, iOS, Web | iOS, macOS, watchOS |
| ضروریات | Google Play Services | Apple Developer Program |
| میڈیا | 4 KB تک (ڈیٹا) | 10 MB تک (اٹیچمنٹس) |
| ترجیح | معمولی/اعلیٰ | فوری/بجل بچت |
| لاگت | مفت | مفت (اکاؤنٹ ضروری) |
پش نوٹیفکیشنز کو ظاہری کے طریقے اور مقصد کے اعتبار سے درجہ بند کیا جاتا ہے۔ اقسام کو سمجھنا ہر صارف کے تعامل کے منظر نامے کے لیے مناسب حکمت عملی چوننے میں مدد کرتا ہے۔
سب سے عام قسم — ایک ظاہر شدہ نوٹیفکیشن جس میں سرخی اور متن ہوتا ہے۔ آپریٹنگ سیسٹم اسے خودکار نوٹیفکیشن پینل، لاک اسکرین اور بینر کی شکل میں دیکھاتا ہے۔ ڈیولپر براہ راست کارروائیوں (جواب دیں، کھولیں، مسترد کریں) کے لیے آواز، وائبریشن، آئیکن بیج اور ایکشن بٹن ترتیب دے سکتا ہے۔
ڈیٹا نوٹیفکیشنز میں صرف payload ہوتا ہے بغیر کسی بصری ظاہری کے۔ ایپ انہیں پس منزر میں پروسیس کرتا ہے: ڈیٹا سینک کرنا، کیش اپ ڈیٹ کرنا، یا ڈاؤن لوڈ شروع کرنا۔ Android پر، ڈیٹا نوٹیفکیشنز قابل بھروسہ طریقے سے پہنچائے جاتے ہیں؛ iOS پر، صرف اس وقت جب ایپ فعال ہو یا بیک گراؤنڈ فیچ کے ذریعے۔
جدید موبائل آپریٹنگ سیسٹمز تصویروں، GIF، ویڈیو اور آڈیو کے ساتھ ریچ اور میڈیا نوٹیفکیشنز کی حمایت کرتے ہیں۔ iOS پر، یہ UNNotificationAttachment کے ذریعے نفذ کیا جاتا ہے؛ Android پر، سیسٹم پینل میں نوٹیفکیشن کی ظاہری کو کسٹمائز کرنے کے لیے BigPictureStyle اور InboxStyle کے ذریعے۔
خاموش نوٹیفکیشنز صارف کو نہیں دیکھائے جاتے اور پس منزر سینک کے لیے استعمال کیے جاتے ہیں۔ iOS پر، ان کی ایپ کھولنے سے پہلے ڈیٹا اپ ڈیٹ کرنے جیسے کاموں کے لیے اعلیٰ ترجیح ہوتی ہے۔ Android انہیں کم از کم ترجیح کے ساتھ ڈیٹا نوٹیفکیشنز کے طور پر پروسیس کرتا ہے۔
پش نوٹیفکیشنز کی ترتیب کے لیے بنیادی چھتہ، سرور اور کلائینٹ کوڈ کی سطح پر کام کی ضرورت ہے۔ ایک کراس پلیٹ فارم موبائل پروجیکٹ کے لیے معمولی عمل کو دیکھتے ہیں۔
Android کے لیے، آپکو Firebase Console میں ایک پروجیکٹ بنانا ہوگا، پروجیکٹ میں google-services.json شامل کرنا ہوگا، اور FirebaseMessagingService ترتیب دینا ہوگا۔ آلہ کا ٹوکن FirebaseInstanceId یا FirebaseMessaging.getInstance().token کے ذریعے حاصل کیا جاتا ہے، اس کے بعد پہلی بار لائیچ کرنے یا بدلنے پر API کے ذریعے سرور کو بھیج دیا جاتا ہے۔
iOS کے لیے، Apple Developer Program رکنیت، Developer Portal میں ایک Push سرٹفکیٹ یا APNS کنجی بنانا، اور Xcode میں Push Notifications کی صلاحیت فعال کرنا ضروری ہے۔ نوٹیفکیشن رجسٹریشن UIApplication.shared.registerForRemoteNotifications کے ذریعے کیا جاتا ہے، AppDelegate میں deviceToken موصول ہوتا ہے۔
import UIKit
import UserNotifications
@main
class AppDelegate: UIResponder,
UIApplicationDelegate {
func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken
deviceToken: Data
) {
let token = deviceToken
.map { String.format("%02x", $0) }
.joined()
// اپنے سرور پر ٹوکن بھیجیں
}
}
سرور کی جانب سے، پش نوٹیفکیشنز REST API یا Admin SDK کے ذریعے بھیجے جاتے ہیں۔ FCM Firebase Admin SDK (Node.js، Java، Python، Go کے لیے دستیاب) استعمال کرتا ہے، جبکہ APNS pusher لائبریریز (Java کے لیے pushy، Node.js کے لیے apn2) استعمال کرتا ہے۔ آخری اپ ڈیٹ کے ٹائم سٹیمپ کے ساتھ ڈیٹابیس میں ٹوکنز محفوظ کرنے کی سفارش کی جاتی ہے۔
پش نوٹیفکیشن سیکیورٹی انتہائی اہم ہے، کیونکہ ان کے ذریعے خفیہ ڈیٹا منتقل کیا جا سکتا ہے۔ دونوں پلیٹ فارم بنیادی تحفظی میکانزم فراہم کرتے ہیں، لیکن ڈیولپر کو انہیں صحیح طریقے سے استعمال کرنا چاہیے۔
ایک پش نوٹیفکیشن کا payload میں صارفوں کا ذاتی ڈیٹا ہو سکتا ہے: نام، لین دے کی رقمیں، پیغام کے لنکس۔ اگرچہ FCM/APNS اور آلہ کے درمیان مواصلاتی چینل خفیہ کردہ ہے، لیکن اگر کوئی تیسری پارٹی کا سافٹویئر نوٹیفکیشن کو ایکسیپٹ کرتا ہے تو ڈیٹا ایپ کی سطح پر پکڑا جا سکتا ہے۔ سرور پر AES-256 استعمال کرکے حساس payload کو خفیہ کرنے اور Keychain (iOS) یا EncryptedSharedPreferences (Android) میں محفوظ کنجی استعمال کرکے آلہ پر خفیہ کھولنے کی سفارش کی جاتی ہے۔
آلہ کا ٹوکن ایک سیشن شناختی پہچان ہے جو آلہ کے ہیک ہونے یا ٹریفک کے ایکسیپٹ ہونے پر سمجھوتا ہو سکتا ہے۔ ایپ سرور کو بھیجنے سے پہلے ٹوکنز کی تصدیق کرنی چاہیے: انہیں ڈیٹابیس سے ملانا، غیر فعال ٹوکنز کا سراغ رکھنا، اور بار بار InvalidToken کی غلطیاں آنے پر انہیں ہٹا دینا۔ FCM اور APNS ناقابل ٹوکنز کے لیے InvalidRegistration کی حالت واپس کرتے ہیں — اسے نظرانداز ن کریں۔
فریکوینسی کی پابندی کے بغیر، پش نوٹیفکیشنز ایک سپیم الا بن سکتے ہیں جو صارفوں کو پریشان کرتا ہے اور ریٹنشن کو کم کرتا ہے۔ سرور پر حدود مقرر کریں: ایک صارف کے لیے فی گھنٹہ 5 سے زیادہ نوٹیفکیشنز نہیں اور 3 سے زیادہ یکسان پیغام نہیں۔ لین دے کے لناد۔ کے نوٹیفکیشنز (آرڈر تصدیق، پاسورڈ تبدیلی) کے لیے، حدود اور بڑھے ہو سکتے ہیں — فی گھنٹہ 10 تک، کیونکہ ان میں انتہائی اہم معلومات ہوتی ہے۔ API بھیجنے کی سطح پر ریٹ لمیٹنگ استعمال کریں تاکہ کوئی حملہ کرنے والا آپکے سرور کے ذریعے بلک نوٹیفکیشنز ٹرگر نہ کر سکے۔
اکثر پوچے جانے والے سوالات
ہاں، لیکن Android پر APNS سے براہ راست کنیڡشن کی حمایت نہیں ہے — Google Play Services کے بغیر آلات Huawei Mobile Services (HMS) اور کسٹم WebSocket کنیڡشنز جیسے متبادل استعمال کرتے ہیں۔ تاہم، FCM اپنی مفتی اور بھروس۔ کے لیے زیادہ تر ایپلیکیشنز کے لیے معیار بنا ہوئے ہے۔
FCM اور APNS آخری نوٹیفکیشن کو اپنے سروروں پر محفوظ کرتے ہیں اور کنیڡشن بحال ہونے پر اسے پہنچاتے ہیں۔ ہر آلہ صرف ہر ایپ سے آخری نوٹیفکیشن محفوظ کرتا ہے، لہذا لمبے شبکہ کی غیر موجودگی کے دوران درمیانی پیغام گم ہو جاتے ہیں۔
سب سے عام وجوہات هیں ایک میاد شدہ Push سرٹفکیٹ (1 سال کے لیے کارگر)، غیر مزیر آلہ کا ٹوکن، ترتیبات میں نوٹیفکیشنز بند ہونا یا لو پاور موڈ فعال ہونا۔ Apple Developer Console میں سرٹفکیٹ چیک کریں اور یقینی بنائیں کہ ایپ UNUserNotificationCenter کے ذریعے اجازت مانگتی ہے۔
Android پر، Intent کے ذریعے کھولنے کو ٹریک کرنے کے ساتھ NotificationCompat.Builder میں PendingIntent استعمال کریں۔ iOS پر، UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:) طریقہ استعمال کریں۔ FCM بھیجے گئے ہر نوٹیفکیشن کے لیے ٹرانسمشن اور اوپن ریپورٹ فراہم کرتا ہے۔
بہت کم — پش نوٹیفکیشنز مسلسل کنیڡشن قائم نہیں رکھتے؛ OS تمام ایپس کے لیے ایک سسٹم چینل استعمال کرتا ہے، جو کل بجل کی کھپت کو کم سے کم کرتا ہے۔ بار بار بھیجنا (ہر 5 منٹ) آلہ کو نیند سے جگاکر زیادہ توانائی کھپاتا ہے۔ iOS پر خاموش نوٹیفکیشنز موصولہ ڈیٹا پروسیس کرنے کے لیے پس منزر میں ایپ کی ایکٹیویشن کے کارن زیادہ بیٹری استعمال کرتے ہیں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں