خیلی از اپلیکیشنهایی که ما و یا کاربرهامون روی گوشی نصب میکنیم دفعه اول جذابیت خاصی دارن ولی ممکنه بعد از مدتی کاملا به فراموشی سپرده بشن! فرستادن نوتیفیکشن برای کاربر(البته به شکل هوشمندانه و نه آزاردهنده) یکی از راههاییه که کاربر رو به استفاده مداوم از اپ ترغیب کنیم و البته این تنها استفاده نوتیفیکیشن فرستادن برای کاربر نیست! در واقع ما میتونیم با پیاده کردن سرویس نوتیفیکیشن هر پیامی که لازمه اپلیکیشن اونو real-time دریافت کنه و بهش پاسخ بده رو ارسال کنیم! در این نوشته کوتاه سعی میکنم بهتون یاد بدم که چطور با استفاده از google firebase این امکان رو تو اپلیکیشنهای فلاتر پیادهسازی کنیم.
پیشنیازها
برای پیاده کردن سرویس نوتیفیکیشن روی اپهاتون باید حداقل یک پروژه فلاتر آماده داشته باشید و آشنایی اولیه با فلاتر داشته باشید!
اگه از معماری اپلیکیشنهای اندروید و آیاواس هم اطلاعاتی داشته باشید تو راهاندازی پروژه بهتون کمک میکنه!
راهاندازی سرویس نوتیفیکیشن
مرحله اول: ساخت یک پروژه فایربیس
فکر میکنم همه شما حساب گوگل داشته باشید! به console.firebase.google.com برید و وارد بشید. رابط کاربری فایبربیس خیلی ساده است و به راحتی میتونید با اون تعامل کنید! یک پروژه جدید تعریف کنید:
مرحله دوم: متصل کردن فلاتر به فایربیس (اندروید)
واقعیت اینه که برای هر دو پلتفرم اندروید و آیاواس باید یه شکل جداگانهای فلاتر رو به فایربیس متصل کنید! در این نوشته من فقط نحوه اتصال فایربیس و فلاتر توی اندروید رو توضیح میدم و برای متصل کردن آیاواس میتونید از راهنمای این لینک استفاده کنید: متصل کردن فایربیس به ios برای دریافت نوتیفیکیشن
کتابخونه firebase_messaging رو به پروژتون اضافه کنید. به تب installing تو صفحه همین کتابخونه مراجعه کنید تا راهنمای نصب اون رو بخونید. بعدا با این کتابخونه کار داریم!
حالا به صفحه کنسول گوگل برگردید تا یه اپلیکیشن برای پروژه فایربیستون اضافه کنید از صفحه اصلی پروژهتون روی آیکون اندروید کلیک کنید.
در فیلد اول package name پروژه فلاتر رو وارد کنید. پکیج نیم رو از فایل build.gradle تو پوشه android میتونید پیدا کنید و تغییرش بدید!
بعد از این مرحله فایربیس براتون یه فایل کانفیگ جیسون میسازه که باید این فایل رو به پوشه android/app اضافه کنید. راهنمای مکتوبش تو صفحه خودش هم هست و چیز پیچیدهای نیست! مطمئنم که از پسش برمیایید. بعد از این فایل جیسون رو به پروژه اضافه کردید باید SDK فایربیس رو به برنامهتون اضافه کنید. فقط کدهایی که گفته رو کپی کنید و تو جایی که میگه پیسشتون کنید. دقت کنید دقیقا کدهای build.gradle رو که توی فولدر اصلی اندروید هست با build.gradle که تو پوشه app هست قاطی نکنید! اگه همه کارها رو درست انجام بدید اپ ما الان به فایربیس متصل شده.
اگه میخواهید کاربر با کلیک کردن روی نوتیفیکیشن دوباره به اپلیکیشن برگرده این چند خط کد رو هم به AndroidManifest.xml که تو پوشه android/app/src/main میتونید پیداش کنید اضافه کنید: (تو تگ activity)
<intent-filter>
<action android:name=”FLUTTER_NOTIFICATION_CLICK” />
<category android:name=”android.intent.category.DEFAULT” />
</intent-filter>
مرحله سوم: هندل کردن پیام در فلاتر
حالا برای دریافت کردن پیام و انجام کارهای مختلف با دریافت پیام میتونید یه همچین کلاس بنویسید و اونو تو جاهای مختلف فراخوانیش کنید. یا میتونید تو همون ویجتهای stateful ازش استفاده کنید. این کلاس رو ببینید.
برای آشنا شدن با کانفیگ و انجام کارهای مختلف توسط برنامه با دریافت پیام خاص از سمت فایربیس میتونید این ویدیو یوتوب رو ببینید: نوتیفیکشن هوشمند در فلاتر
مرحله چهارم: فرستادن پیام در فایربیس
به بخش Cloud messaging برید و یه نوتیفیکیشن جدید بسازید:
بعد از تایید محتوای پیام میتونید انتخاب کنید که این پیام رو میخواهید برای کدوم دسته از کاربرها ارسال کنید. و بعد از تایید زمان ارسال پیام و … پیام شما فرستاده میشه و میتونید ببینید که به درستی دریافت میشه:
منابع:
- https://medium.com/@SebastianEngel/easy-push-notifications-with-flutter-and-firebase-cloud-messaging-d96084f5954f
- https://medium.com/@jun.chenying/flutter-tutorial-part3-push-notification-with-firebase-cloud-messaging-fcm-2fbdd84d3a5e
- https://pub.dev/packages/firebase_messaging
- https://www.youtube.com/watch?v=2TSm2YGBT1s