Skip to main content

راه اندازی پیشرفته

2.6.3

کتابخانه‌ی پوشه متشکل از تعدادی قابلیت است که هر کدام در قالب یک ماژول شروع به فعالیت می‌کنند. برای استفاده از هر قابلیت بایستی ماژول آن به پروژه‌ی مورد نظر اضافه شود.
این ماژول‌ها عبارتند از:

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 و دیگر کارهایی که نیاز به جمع آوری دیتا از اپلیکیشن دارد، استفاده می‌شود. هر سرویسی که نیاز به سینک لوکیشن داشته باشد (ارسال با استفاده از موقعیت یا نمایش موقعیت جغرافیایی کاربران) این ماژول را نیاز دارد.

نکته

برای اینکه این ماژول بتواند دیتای لازم را جمع‌آوری کند بایستی پرمیشن‌های لازم را از کاربر دریافت کنید. این ماژول صرفا در صورتی دیتای لازم را دریافت خواهد کرد که پرمیشن‌های لازم از کاربر گرفته شده باشد.

AndroidManifiest.xml
<!-- 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 تاثیری در حجم نخواهد داشت، زیرا کدهای بلااستفاده ممکن است در کتابخانه‌ای دیگر استفاده شده باشند.