سلام به دوستان عزیز تو این مقاله قصد دارم نحوه شخصی سازی رابط کاربری پیام های firebase in-app messaging (به اختصار fiam) رو توضیح بدم. تو مقاله ی قبلی که منتشر کردم نحوه راه اندازی fiam رو توضیح دادم که از این لینک میتونید بهش دسترسی داشته باشید.
خب مرحله اول برای اینکار اینه که کلاس زیر رو ایجاد کنید. توی این کلاس قراره پیامی که از فایربیس دریافت کردیم رو بررسی کنیم و براساس نوع پیامی که ارسال شده ui موردنظر خودمون رو نمایش بدیم:
*نکته: توی این کد از dependency injection و Hilt استفاده شده .
مرحله ی بعدی اینه که کد زیر رو توی اکتیویتی اصلیتون قرار بدید. اگر پروژتون single activity هست توی اون اکتیویتی در غیر این صورت یک base activity که سایر activity ها از اون ارث بری میکنند.
خب با این کار برای اولین بار که متد اجرا میشه پیام های از فایربیس دریافت میشن و بسته به ایونتی که برای اون پیام در زمان ارسال درنظر گرفته شده در جای مناسبش نمایش داده میشه به علاوه این پیام ها به کلاس InAppMesssagingHandler ای که از قبل ساختیم ارسال میشه و پیام ها براساس ui ای که ما براش درنظر گرفتیم نمایش داده میشه.
مرحله ی بعدی پیاده سازی ui هایی هست که برای پیام ها در نظر گرفتیم.بسته به استایل و تم نرم افزارتون این بخش هارو میتونید خودتون پیاده سازی کنید.
در ادامه میریم سراغ کامل کردن کلاس InAppMesssagingHandler. همونطور که بالاتر شمای کلی این کلاس رو دیدید ما میتونیم بر اساس messageType تشخیص بدیم که چه نوع پیامی برامون ارسال شده و براساس اون ui موردنظرمون رو اعمال کنیم به عنوان مثال برای حالتی که پیاممون از نوع Modal هست کد اون بخش به شکل زیر پیاده سازی میشه:
توی این تیکه از کد ما زمانی که کاربر پیام رو میبنده با صدا زدن کال بک CLICK در واقع اعلام میکنیم که کاربر این پیام رو مشاهده کرده، اگر این کار رو انجام ندیم هر بار کاربر به نقطه ی دریافت اون پیام میرسه (به عنوان مثال اپ در حالت foreground قرار بگیره) اون پیام دوباره به کاربر نمایش داده میشه.
حالا خروجی کدمون رو توی دو حالت با هم میبینیم: حالتی که ui پیش فرض خودت فایربیس هست و حالتی که ما ui موردنظر خودمون رو اعمال کردیم برای پیام های از نوع Card
تا اینجا مراحل کلی پیاده سازی توضیح داده شد، جزییات و پیاده سازی کامل کد بالا تو گیت هابم قرارداره میتونید کد رو به طور کامل از این لینک دریافت کنید و جزییات پیاده سازیش رو ببینید.
پذیرای نظرات و پیشنهاداتون هستم.