این شروع سریع نحوه راهاندازی Firebase Cloud Messaging را در برنامههای تلفن همراه و کلاینت وب خود توضیح میدهد تا بتوانید به طور قابل اعتماد پیام ارسال کنید. برای محیط های سرور، محیط سرور شما و FCM را ببینید.
یک برنامه مشتری Firebase Cloud Messaging بر روی سیستم عامل های اپل تنظیم کنید
برای برنامه های Client Apple ، می توانید بارهای اعلان و داده های داده را تا 4096 بایت از طریق رابط APNS Firebase Cloud Messaging دریافت کنید.
برای نوشتن کد مشتری خود در Objective-C یا Swift ، توصیه می کنیم از API Firmessaging استفاده کنید. مثال QuickStart کد نمونه را برای هر دو زبان ارائه می دهد.
قبل از شروع کار ، Firebase را به پروژه اپل خود اضافه کنید .
روش swizzling در Firebase Cloud Messaging
FCM SDK در دو حوزه کلیدی روش را انجام می دهد: نقشه برداری از نشانه های APNS خود را به نشانه ثبت نام FCM و ضبط داده های تحلیلی در هنگام رسیدگی به تماس پیام در پایین دست . توسعه دهندگان که ترجیح می دهند از swizzling استفاده نکنند ، می توانند با افزودن پرچم FirebaseAppDelegateProxyEnabled
در پرونده info.plist برنامه و تنظیم آن بر روی NO (مقدار بولی) آن را غیرفعال کنند. زمینه های مربوط به راهنماها نمونه های کد را ارائه می دهند ، چه با و بدون روش Swizzling.
کلید احراز هویت APNS خود را بارگذاری کنید
کلید احراز هویت APN خود را در Firebase بارگذاری کنید. اگر قبلاً کلید احراز هویت APNS ندارید ، حتماً یکی از آنها را در مرکز عضو توسعه دهنده اپل ایجاد کنید.
در داخل پروژه خود در کنسول Firebase ، نماد Gear را انتخاب کنید ، تنظیمات پروژه را انتخاب کنید و سپس برگه Cloud Messaging را انتخاب کنید.
در کلید تأیید هویت APNS تحت پیکربندی برنامه iOS ، روی دکمه بارگذاری کلیک کنید تا کلید احراز هویت توسعه یا کلید احراز هویت تولید یا هر دو را بارگذاری کنید. حداقل یک مورد لازم است.
به مکانی که کلید خود را ذخیره کرده اید ، آن را انتخاب کرده و روی Open کلیک کنید. شناسه کلید را برای کلید (موجود در مرکز عضو توسعه دهنده اپل ) اضافه کنید و روی بارگذاری کلیک کنید.
برای اعلان های از راه دور ثبت نام کنید
یا در هنگام راه اندازی ، یا در نقطه مورد نظر در جریان برنامه ، برنامه خود را برای اعلان های از راه دور ثبت کنید. همانطور که نشان داده شدهregisterForRemoteNotifications
تماس بگیرید:سویفت
UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) application.registerForRemoteNotifications()
هدف-C
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
به رمز ثبت نام دسترسی پیدا کنید
به طور پیش فرض ، FCM SDK یک نشانه ثبت نام برای نمونه برنامه مشتری در راه اندازی برنامه ایجاد می کند. مشابه با نشانه دستگاه APNS ، این نشانه به شما امکان می دهد تا اعلان های هدفمند را به هر نمونه خاصی از برنامه خود ارسال کنید.
به همان روشی که سیستم عامل های اپل به طور معمول یک توکن دستگاه APNS را در شروع برنامه ارائه می دهند ، FCM یک نشانه ثبت نام را از طریق پیام رسانی FIRMessagingDelegate
ارائه می دهد messaging:didReceiveRegistrationToken:
روش. FCM SDK در هنگام راه اندازی برنامه اولیه و هر زمان که نشانه به روز یا باطل شود ، یک نشانه جدید یا موجود را بازیابی می کند. در همه موارد ، FCM SDK messaging:didReceiveRegistrationToken:
با یک نشانه معتبر.
نشانه ثبت نام ممکن است زمانی تغییر کند که:
- برنامه در یک دستگاه جدید بازیابی می شود
- کاربر برنامه را حذف/نصب مجدد می کند
- کاربر داده های برنامه را پاک می کند.
نماینده پیام رسانی را تنظیم کنید
برای دریافت نشانه های ثبت نام ، پروتکل نماینده پیام رسانی را اجرا کرده و پس از تماس با [FIRApp configure]
دارایی delegate
FIRMessaging
تنظیم کنید. به عنوان مثال ، اگر نماینده برنامه شما با پروتکل نماینده پیام رسانی مطابقت دارد ، می توانید نماینده را در application:didFinishLaunchingWithOptions:
به خودی خود.
سویفت
Messaging.messaging().delegate = self
هدف-C
[FIRMessaging messaging].delegate = self;
واکشی نشانه ثبت نام فعلی
نشانه های ثبت نام از طریق messaging:didReceiveRegistrationToken:
. این روش به طور کلی یک بار در هر برنامه با نشانه ثبت نام شروع می شود. وقتی این روش خوانده می شود ، زمان ایده آل برای:
- اگر نشانه ثبت نام جدید است ، آن را به سرور برنامه خود ارسال کنید.
- نشانه ثبت نام را در موضوعات مشترک کنید. این فقط برای اشتراک های جدید یا برای موقعیت هایی که کاربر مجدداً برنامه را نصب کرده است لازم است.
شما می توانید با استفاده از نشانه ها ، نشانه را مستقیماً بازیابی کنید (تکمیل :) . اگر بازیابی توکن به هیچ وجه شکست بخورد ، خطای غیر تهی ارائه می شود.
سویفت
Messaging.messaging().token { token, error in if let error = error { print("Error fetching FCM registration token: \(error)") } else if let token = token { print("FCM registration token: \(token)") self.fcmRegTokenMessage.text = "Remote FCM registration token: \(token)" } }
هدف-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) { if (error != nil) { NSLog(@"Error getting FCM registration token: %@", error); } else { NSLog(@"FCM registration token: %@", token); self.fcmRegTokenMessage.text = token; } }];
می توانید به جای ذخیره کردن آن ، از این روش در هر زمان استفاده کنید تا به نشانه دسترسی پیدا کنید.
نظارت بر توکن
برای اطلاع رسانی هر زمان که این نشانه به روز شود ، یک نماینده مطابق با پروتکل نماینده پیام رسانی تهیه کنید. مثال زیر نماینده را ثبت می کند و روش نماینده مناسب را اضافه می کند:
سویفت
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) { print("Firebase registration token: \(String(describing: fcmToken))") let dataDict: [String: String] = ["token": fcmToken ?? ""] NotificationCenter.default.post( name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict ) // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
هدف-C
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken { NSLog(@"FCM registration token: %@", fcmToken); // Notify about received token. NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"]; [[NSNotificationCenter defaultCenter] postNotificationName: @"FCMToken" object:nil userInfo:dataDict]; // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
از طرف دیگر ، شما می توانید به جای تهیه یک روش نماینده ، به عنوان NSNotification
به نام kFIRMessagingRegistrationTokenRefreshNotification
گوش دهید. خاصیت توکن همیشه ارزش توکن فعلی را دارد.
Swizzling معلول: نقشه برداری از نشانه های APNS و نشانه ثبت نام
اگر روش غیرفعال را Swizzling دارید ، یا در حال ساختن یک برنامه Swiftui هستید ، باید صریحاً نقشه های APNS خود را به نشانه ثبت FCM نقشه برداری کنید. application(_:didRegisterForRemoteNotificationsWithDeviceToken:)
روش بازیابی نشانه APNS ، و سپس تنظیم ویژگی apnsToken
Messaging
:
سویفت
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { Messaging.messaging().apnsToken = deviceToken }
هدف-C
// With "FirebaseAppDelegateProxyEnabled": NO - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [FIRMessaging messaging].APNSToken = deviceToken; }
پس از ایجاد توکن ثبت نام FCM ، می توانید با استفاده از همان روش هایی که با فعال کردن Swizzling فعال شده ، به آن دسترسی پیدا کرده و به وقایع تازه کردن گوش دهید.
از ابتدای خودکار جلوگیری کنید
هنگامی که یک نشانه ثبت نام FCM ایجاد می شود ، کتابخانه داده های شناسه و پیکربندی را در Firebase بارگذاری می کند. اگر می خواهید ابتدا یک انتخاب صریح از کاربران دریافت کنید ، می توانید با غیرفعال کردن FCM از تولید توکن در زمان پیکربندی جلوگیری کنید. برای انجام این کار ، یک مقدار ابرداده به Info.plist
خود اضافه GoogleService-Info.plist
FirebaseMessagingAutoInitEnabled = NO
برای ورود مجدد FCM ، می توانید یک تماس با زمان اجرا کنید:
سویفت
Messaging.messaging().autoInitEnabled = true
هدف-C
[FIRMessaging messaging].autoInitEnabled = YES;
این مقدار در سراسر برنامه مجدداً تنظیم می شود.
ارسال پیام اعلان
- برنامه را روی دستگاه مورد نظر نصب و اجرا کنید. در دستگاه های اپل ، درخواست مجوز دریافت اعلان های از راه دور را بپذیرید.
- بررسی کنید که برنامه در پس زمینه دستگاه قرار دارد.
- در کنسول Firebase ، صفحه پیام رسانی را باز کنید.
- اگر این اولین پیام شماست، ایجاد اولین کمپین خود را انتخاب کنید.
- پیامهای اعلان Firebase را انتخاب کنید و ایجاد را انتخاب کنید.
- در غیر این صورت، در تب Campaigns ، کمپین جدید و سپس Notifications را انتخاب کنید.
- متن پیام را وارد کنید
- از قسمت سمت راست گزینه Send test message را انتخاب کنید.
- در قسمت دارای برچسب اضافه کردن یک نشانه ثبت نام FCM ، نشانه ثبت نام خود را وارد کنید.
- آزمون را انتخاب کنید.
پس از انتخاب تست ، دستگاه مشتری هدفمند ، با برنامه در پس زمینه ، باید اعلان را دریافت کند.
برای بینش در مورد ارسال پیام به برنامه خود ، به داشبورد گزارش FCM مراجعه کنید ، که تعداد پیام های ارسال شده و باز شده در دستگاه های اپل و اندرویدی را ثبت می کند.
مراحل بعدی
بعد از تنظیم مشتری اپل خود ، می توانید دریافت و ارسال پیام به کاربران خود را شروع کنید: