راهنمای راه‌اندازی پوش در Android Studio

با خواندن این راهنما، در انتها شما می‌توانید SDK پوش‌نوتیفیکیشن نجوا را از طریق اندروید استودیو به اپلیکیشن اندرویدی خود اضافه کنید، همچنین می‌توانید راهنمای زیر را در GitHub نجوا مشاهده کنید. در صورتی که در هر مرحله از فرآیند نصب با مشکلی روبرو شدید، با تلگرام پشتیبانی نجوا در ارتباط باشید.

مرحله یک: تغییرات gradle

در فایل gradle مربوط به پروژه در بخش allproject و بخش repositories کد زیر را به شکل زیر قرار دهید

allprojects {
    repositories {
        google()
        jcenter()
    }
}

ابتدا در فایل  build.gradle اپلیکیشن کتابخانه ی نجوا را اضافه کنید:

dependencies {
      implementation 'com.najva.sdk:najva-android-sdk:1.1.5'
}

در بالای صفحه سمت راست sync را بزنید تا gradle سینک شود.

مرحله دو: پیاده‌سازی SDK (تغییرات Activity اصلی)

در کلاس MainActivity اپلیکیشن خود کد های زیر به متد onCreate  اضافه کنید.

int campaignId = "YOUR_CAMPAIGN_ID";   
int websitenId = "YOUR_WEBSITE_ID";   
String apiKey = "YOUR_API_KEY";   
Najva.initialize(this, campaignId, websitenId, apiKey);

شما می توانید در پنل نجوا مقادیر campaignId, websiteId, apiKey  را در قسمت تنظیمات اپلیکیشن خود مشاهده کنید. برای نمونه:

پیاده‌سازی SDK نجوا

این مقادیر پس از ثبت هر اپلیکیشنی در پنل، قابل دسترس خواهد بود و فقط برای همان اپلیکیشن قابل استفاده است.

برای دسته بندی و ارسال نوتیفیکیشن با توجه به موقعیت مکانی لازم است که دسترسی استفاده از موقعیت مکانی کاربر را در فایل AndroidManifest.xml پروژه خود اضافه کند.

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 در نظر داشته باشید در ورژن اندروید ۶ به بالا باید دسترسی‌ها لوکیشن از کاربر توسط اپ درخواست شود. برای اطلاعات بیشتر به این آدرس در خواست دسترسی لوکیشن مراجعه کنید.

برای اطمینان از صحت عملکرد سرویس نجوا، پس از اعمال تغییرات گفته شده اپلیکیشن خود را روی یک دستگاه نصب کنید. پس از مدت زمان کوتاهی در پنل نجوای شما اطلاعات دستگاه شما ثبت می‌شود.

همچنین می‌توانید یک نوتیف تستی به دستگاه خودتان بفرستید.

اکنون اپلیکیشن شما برای ارسال پوش‌نوتیفیکیشن آماده است.

دریافت توکن کاربران

با استفاده از سرویس نجوا می‌توانید برای تعداد خاصی از کاربرهای خود نوتیفیکیشن ارسال کنید. برای این کار کد زیر را در کلاس MainActivity اضافه کنید.

Najva.setUserHandler(new NajvaUserHandler(){
   @Override
   public void najvaUserSubscribed(String token) {
       Log.i("Najva", "najvaUserSubscribed: " + token);

       //handel token
   }
})

توکن دریافت شده، شناسه کاربر شما در نجوا می‌باشد. که می‌توانید کاربر های خود را مدیریت کنید.

با استفاده از متد زیر می‌توانید توکن را بدون استفاده از کلاس NajvaUserHandler دریافت کنید. در نظر داشته باشید که اگر token از سرور‌های نجوا دریافت نشده باشد مقدار null توسط این متد برگشت داده می‌شود.

;(Najva.getSubscribedToken(Context

استفاده همزمان نجوا و سایر سرویس‌های پوش نوتیفیکیشن

اگر نیاز دارید به صورت مستقیم از فایربیس در کنار نجوا نوتیفیکیشن‌ها را دریافت کنید یا از سرویس‌های پوش نوتیفیکیشنی که از فایربیس استفاده می‌کنند در کنار نجوا استفاده کنید مراحل زیر را در پروژه خود انجام دهید:

ابتدا کلاس جدیدی به نام MyService ایجاد کنید. سرویس مورد نظر باید از کلاس FirebaseMessagingService ارث ببرد. در مرحله‌‌ی بعد کد‌های زیر را به کلاس MyService اضافه کنید:

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class Myservice extends FirebaseMessagingService {
   @Override
   public void onMessageReceived(RemoteMessage remoteMessage) {
       super.onMessageReceived(remoteMessage);
       if (NajvaPushNotificationHandler.isNajvaMessage(
                getApplicationContext(), remoteMessage))
        {
            NajvaPushNotificationHandler.handleMessage(
                getApplicationContext(), 
                remoteMessage
            );
      }
       // handel other push notifications
   }

   @Override
   public void onNewToken(String s) {
       super.onNewToken(s);
       NajvaPushNotificationHandler.handleNewToken(getApplicationContext(), s);
   }
}

حال می توانید در متد onMessageReceived سایر سرویس های پوش نوتیفیکیشن مورد استفاده در پروژه ی خود را فراخوانی کنید و با استفاده از متد زیر می‌تواند تشخیص دهید که آیا پیغام دریافتی مربوط به sdk نجواست است یا نه.

NajvaPushNotificationHandler.isNajvaMessage(Context, RemoteMessage) 

در مرحله آخر باید کلاس MyService را به عنوان یک سرویس AndroidManifest.xml پروژه خود اضافه نمایید و سرویس NajvaMessagingService را غیر فعال نمایید. با کپی کردن و اضافه کردن مقادیر زیر در تگ application فایل AndroidManifest این کار انجام می‌شود.

   <service android:name=".MyService">
       <intent-filter>
           <action android:name="com.google.firebase.MESSAGING_EVENT"/>
       </intent-filter>
   </service>
   <service
       android:name="com.najva.najvasdk.Service.NajvaMessagingService"
       tools:node="remove"/>