دوره مجازی اندروید (جلسه 41): ارسال پوش نوتیفیکیشن به کاربران با سرویس FCM گوگل

- visibility ۱۰ mode_comment

به نام خدا

در این جلسه قصد داریم، نحوه ی پیاده سازی سرویس پوش نوتیفیکیشن با استفاده از سرویس Firebase گوگل را به شما آموزش دهیم.

مطالب مطرح شده در این جلسه:

  • راهنمایی قدم به قدم برای اضافه کردن سرویس Fcm notifications
  • نمایش نوتیفیکیشن ساده همراه با title و content
  • هدایت کاربر بعد از کلیک روی نوتیفیکیشن به صفحه ی پست
  • هدایت کاربر بعد از کلیک روی نوتیفیکیشن به صفخه وب
  • تغییر تنظیمات مربوط نحوه ی نمایش نوتیفیکیشن
  • دریافت اطلاعات از remoteMessage
  • معرفی و کار با سرویس FirebaseMesaaging

لینک نصب و پیاده سازی به زبان انگلیسی (گوگل): برای اطلاع از آخرین ورژن کتابخانه ها حتماً مشاهده شود

لینک فایل FirebaseMessagingService

دستور cmd برای دریافت Sha1:

keytool -list -v -keystore %USERPROFILE%/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
info توجه

این مطلب یک جلسه از دوره آموزش اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش اندروید

comment دیدگاه کاربران
حمید ستوده

سلام
استاد شاهینی امکانش هست که دیباگ کردن رو توی جلسات باقی مونده آموزش بدید؟

سعید شاهینی

سلام خیر، چون باید در طول جلسات راجع بهش صحبت می شده، البته در بعضی جلسات راجع بهش صحبت کردم

Ali Movahedi

سلام خسته نباشید
یک سوال داشتم

میخواستم بیینم اپلیکیشن هایی مثل اینستاگرام چطوری هر زمان که نوتیفیکیشن میاد بدون اینکه از اپ خارج بشیم و یا رفرش کنیم، پیغام در خود اپ نمایش داده میشه.
مثلا زمانی که یکی پستم رو لایک میکنه در پایین اپ دکمه قرمز میشه و میگه که یکی پستت رو لایک کرده.
(پیام نوتیفیکیشن در استاتوس بار، خود گوشی رو نمیگم)

ممنون میشم یک توضیح جامعی راجع به این مسائل بدین.

سعید شاهینی

سلام٬ برای نمایش Realtime نوتیفیکیشن ها دو راه وجود داره.
۱- استفاده از Firebase Notifications: به صورت پیش فرض نوتیفیکیشن های فایربیس به این صورت عمل می کند که اگر کاربر داخل اپ باشد و اپ در حالت Foreground باشد٬ متد onMessageReceived صدا زده می شود٬ داخل متد onMessageReceived می توانید به هر شکلی که می خواهید نوتیفیکیشن رو نشان دهید. (مثلا شبیه اینستاگرام)
۲- استفاده از Socket.io: سرویس های Api که ما تا به حال می نوشتیم به این صورت بوده که ابتدا یه درخواست به سمت سرور ارسال می شده و سپس پاسخ از سمت سرور دریافت می شده و این امکان وجود ندارد که سرور از طرف خود و بدون اینکه درخواستی از اپ بیاد٬ پیغامی به اپ ارسال کنه. اما ساختار ارتباطی Socket.io به صورت دوطرفه ی همزمان (FullDuplex) هست و هم سرور و هم اپ می توانند پیغام خود را ارسال کنند.

امیر غلامی

استاد متد onMessageReceived وقتی ک اپ بسته باشه کار نمیکنه و همیشه ب یه اکتیویتی خاص میره و به اون چیزی ک من مشخص میکنم نمیره مشکل چیه ؟

سعید شاهینی

سلام٬ متاسفانه فایبریس از این قابلیت پشتیبانی نمی کنه و کاربر رو به صورت پیش فرض به اکتیویتی Main می بره. شما می تونی داخل Intent که به اپ می فرسته مقصد رو مشخص کنی و وقتی اکیتیویتی Main اجرا شد بر اساس اون Intent کاربر رو به صفحه دلخواهت بفرستی

حسین مس

جناب شاهینی در این آموزش شما ارسال push notification رو از طریق console خود سایت توضیح دادید. اما آموزش اصلی استفاده از API خود FCM هست که بتونیم به صورت اتوماتیک پیغام ارسال کنیم.
من با جستجو این کار رو انجام دادم و روی سرور مجازی تستش کردم، اما فهمیدم بدون فیلتر شکن نمیشه ازش استفاده کرد.
آیا راهی برای استفاده از FCM وجود نداره؟

سعید شاهینی

سلام٬ سرویس FCM در حال حاضر جزو تحریم ها نیست و به درستی کار می کنه.

mehdi eslami

سلام وقتتون بخیر
من داخل اپم از fcm استفاده کردم
برنامه ب درستی کار میکنه
اما یک مشکل
بعضی موقع ها وقتی پیغامی رو به اپ ارسال میکنم ,دریافت نمیشه ,چرا به این مشکل میخورم؟
ممکنه دلیلش تحریم ایران باشه؟
چه روشی رو برای رفع این مشکل پیشنهاد میکنید؟

سوال دوم : بهترین روش برای ارسال پیام fcm هست؟
سوال سوم: آیا اپ هایی مثل تپسی و اسنپ از فایربیس استفاده کردند؟ یا …؟

تشکر

سعید شاهینی

سلام٬
پاسخ سوال۱: خیر، هیچ تضمینی نیست که ۱۰۰ درصد نوتیفیکیشن به مقصد برسه ولی تا ۹۹ درصد مواقع ارسال می شه.
پاسخ سوال ۲: نه ولی یکی از بهترین ها و راحت ترین هاست
پاسخ سوال ۳: اطلاعی ندارم

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.