راه اندازی پیشرفته
کتابخانهی پوشه متشکل از تعدادی قابلیت است که هر کدام در قالب یک ماژول شروع به فعالیت میکنند. برای استفاده از هر قابلیت بایستی ماژول آن به پروژهی مورد نظر اضافه شود.
این ماژولها عبارتند از:
Base
در صورتی که بخواهید از تمامی امکانات پیشنهادی پوشه استفاده کنید کافیست ماژول base
را به پروژه اضافه کنید تا
امکانات لازم به برنامه اضافه شود. این ماژول به طور خودکار سرویس های زیر را به پروژه ایمپورت میکند:
- Core
- Notification
- Analytics
- Datalytics
- Fcm
def pushe_version = '2.6.3'
implementation("co.pushe.plus:base:$pushe_version")
برای راهاندازی سریع این ماژول مفید خواهد بود.
Core
این ماژول هستهی کتابخانه است و مسئول مدیریت و برقراری ارتباط بین ماژولهای مختلف را به عهده دارد. این ماژول به خودی خود امکانی اضافه نمیکند، اما ماژولهای دیگر بدون این ماژول قادر به فعالیت نیستند. لذا استفاده از این ماژول الزامی است و تمام ماژولهای دیگر این ماژول را به عنوان depedency در خود دارند.
def pushe_version = '2.6.3'
implementation("co.pushe.plus:core:$pushe_version")
Fcm/Hms
برای ارسال و دریافت پیام از سرور پوشه نیاز به یکی از سرویسهای
hms
یا fcm
خواهید داشت.
Fcm (Firebase cloud messaging)
در صورتی که دستگاه کاربر دارای گوگلپلیسرویس باشد، پوشه از طریق
Firebase
اقدام به ارسال پیام و دریافت اعلان از طریق سرور خواهد بود. لذا در صورتی که دستگاه گوگل پلی داشته باشد پوشه از ماژول
fcm
خود برای ارتباط با سرور و دریافت اعلان استفاده خواهد کرد.
Hms (Huawei mobile services)
در صورتی که دستگاه فاقد گوگلپلیسرویس باشد، ماژول
fcm
کار نخواهد کرد، زیرا فایربیس وابسته به وجود گوگلپلی سرویس میباشد. در دستگاههای جدید هواوی و برخی برندهای چینی دیگر،
گوگلپلیسرویس به طور پیشفرض وجود ندارد و در عوض هواوی از سرویس مشابه خود به نام
HMS (Huawei mobile services)
استفاده میکند.
در این شرایط ماژول
hms
از سرویس
Huawei PushKit
استفاده خواهد کرد تا بتواند پیامهای لازم را با موفقیت ارسال و دریافت کند.
برای استفاده از این ماژول بایستی ابتدا کردنشیال لازم برای ارتباط پوشه با HMS را فراهم کنید. اطلاعات بیشتر
نکته
برای استفاده از پوشه بایستی ماژول Core
و حداقل یکی از ماژولهای مسئول ارسال و دریافت
(Courier module)،
fcm
و یا hms
را به پروژه اضافه کنید و سپس مطابق نیاز ماژول مورد نظر خود را انتخاب نمایید.
def pushe_version = '2.6.3'
implementation("co.pushe.plus:core:$pushe_version")
// If using Firebase Messaging
implementation("co.pushe.plus:fcm:$pushe_version")
// If using Huawei PushKit
implementation("co.pushe.plus:hms:$pushe_version")
Notification
در صورتی که قصد استفاده از سرویس پوش نوتیفیکیشن پوشه را داشته باشید، این سرویس را بایستی اضافه کنید. این ماژول مسئول مدیریت تمام کارهای مرتبط با دریافت و نمایش نوتیفیکیشن است.
def pushe_version = '2.6.3'
// Prerequisite: Core + Courier
// Notification
implementation("co.pushe.plus:notification:$pushe_version")
Analytics
این سرویس برای امکاناتی همچون Segmentation، Customer Journey و دیگر امکانات مرتبط با تحلیل کاربر استفاده میشود. این ماژول مسئول track کردن رفتار کاربر در اپلیکیشن شما میباشد (اطلاعات لازم برای سگمنتیشن) و همچنین قابلیت ارسال Event و Ecommerce data را فراهم میکند
def pushe_version = '2.6.3'
// Prerequisite: Core + Courier
// Notification
implementation("co.pushe.plus:analytics:$pushe_version")
Datalytics
دیتاهای لازم برای قابلیتهایی همچون ارسال با فیلتر، آمارهای مختلف از کاربران، Geofence و دیگر کارهایی که نیاز به جمع آوری دیتا از اپلیکیشن دارد، استفاده میشود. هر سرویسی که نیاز به سینک لوکیشن داشته باشد (ارسال با استفاده از موقعیت یا نمایش موقعیت جغرافیایی کاربران) این ماژول را نیاز دارد.
نکته
برای اینکه این ماژول بتواند دیتای لازم را جمعآوری کند بایستی پرمیشنهای لازم را از کاربر دریافت کنید. این ماژول صرفا در صورتی دیتای لازم را دریافت خواهد کرد که پرمیشنهای لازم از کاربر گرفته شده باشد.
<!-- Location Related -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- Geofencing -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<!-- Operator name + network type chart in console -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
این ماژولها به طور خودکار اضافه نخواهند شد. لذا در صورت نیاز بایستی توسط توسعه دهنده اضافه شوند.
def pushe_version = '2.6.3'
// Prerequisite: Core + Courier
// Notification
implementation("co.pushe.plus:datalytics:$pushe_version")
InAppMessaging
نکته
در حال حاضر این ماژول غیرفعال است و در base
وجود ندارد.
نمایش پیام درونبرنامهای با استفاده از پوشه، یکی از خدماتیست که از نسخهی 2.2.0 به پوشه اضافه شد. این قابلیت میتواند به بهبود تجربهی کاربری برنامهی شما کمک کند. همچنین در صورتی که بخواهید رویدادی را با استفاده از پیام درون برنامه به کاربر خود اطلاع دهید (هر رویدادی میتواند باشد) میتوانید از این ماژول بهره ببرید.
def pushe_version = '2.6.3'
// Prerequisite: Core + Courier
// Notification
implementation("co.pushe.plus:inappmessaging:$pushe_version")
Base-mini
پوشه از لایبرری Rxjava2
برای پیادهسازی معماری خود استفاده کرده است. مقداری از این لایبرری ممکن است بلا استفاده باشد.
لذا در صورتی که خود از Rxjava2
در برنامه استفاده نکردهاید میتوانید از
base-mini
بجای base
استفاده کنید. این ماژول نسخهای فشرده از RxJava2 را به پروژه اضافه میکند که حجم کمتری دارد و باعث کاهش نهایی سایز برنامه خواهد شد.
def pushe_version = '2.6.3'
implementation("co.pushe.plus:base-mini:$pushe_version")
توجه
در صورتی که به خطای Duplicate class io.reactivex.*
برخورد کردید به دلیل این است که خود یا یک کتابخانهی دیگر
RxJava
را به برنامه اضافه کرده است. لذا بایستی از base
استفاده کنید. استفاده از base-mini
تاثیری در حجم نخواهد داشت، زیرا
کدهای بلااستفاده ممکن است در کتابخانهای دیگر استفاده شده باشند.