onesignal pushe.co s-3.664-0.699-5.062-2.099c-1.397-1.398-2.097-3.087-2.097-5.065s0.699-3.667,2.097-5.065c1.397-1.399,3.085-2.099,5.062-2.099 s3.664,0.699,5.062,2.099C223.888,120.556,224.587,122.244,224.587,124.223z"/>

برای مهاجرت از وان سیگنال به پوشه کلیک کنید.

React Native

راه‌اندازی

اضافه کردن کتابخانه react native

  • با استفاده از دستور زیر کتابخانه ی پوشه را به پروژه خود اضافه کنید.
npm install react-native-pushe --save

یا با استفاده از yarn :

yarn add react-native-pushe

لینک کردن کتابخانه

  • برای لینک کردن کتابخانه‌ی پوشه دستور زیر را اجرا کنید:
react-native link react-native-pushe

تغییرات AndroidManifest.xml

  • وارد پنل کاربری پوشه شوید و در قسمت اپلیکیشن ها، روی آیکون دریافت منیفست بزنید (این آیکون را با کلیک بر روی علامت سه نقطه ی گوشه ی کارت اپلیکیشن می توانید ببینید).
  • منیفست ری‌اکت نیتیو را انتخاب کنید و محتویات آن را با یک کلیک انتخاب و کپی کرده و به AndroidManifest.xml پروژه خود اضافه کنید.
  • اگر خط زیر در تگ manifest شما وجود ندارد ، آن را اضافه کنید:
xmlns:tools="http://schemas.android.com/tools"
برخی از دسترسی ها (permissions) برای پوشه اختیاری است. این دسترسی ها برای ارسال هدفمند اعلان به کاربران است. شما قادر خواهید بود با استفاده از این دسترسی ها کاربران خود را دسته بندی کنید و اعلانهای خود را هدفمند ارسال کنید.

تغییرات build.gradle

  • به فایل build.gradle مربوط به اپلیکیشن وارد شوید. مراقب باشید اشتباها به فایل gradle مربوط به پروژه وارد نشوید.
  • کد زیر را در dependencies اضافه کنید.
dependencies{
    compile 'com.google.android.gms:play-services-gcm:11.8.0'
    compile 'com.google.android.gms:play-services-location:11.8.0'
}
اگر از دو کتابخانه بالا با ورژن های بالاتری در پروژه خود استفاده کرده اید ، میتوانید از این مرحله عبور کنید.

تغییرات app.js

  • در فایل App.js برنامه خود کتابخانه پوشه را اضافه کنید:
import Pushe from 'react-native-pushe'
  • در constructor کد زیر را وارد کنید.
Pushe.initialize(true);
  • اگر در تابع بالا مقدار true گذاشته شود و دستگاه کاربر شما گوگل پلی سرویس نداشته باشد و یا آن را غیرفعال کرده باشد دیالوگی باز می شود و به کاربر پیشنهاد نصب گوگل پلی سرویس داده می شود تا قابلیت دریافت و ارسال پوش نوتیفیکیشن فعال شود. اگر در تابع بالا false را قرار دهید، این دیالوگ برای کاربر باز نمی شود.

تست

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

  • به صفحه نصب ها بروید.
  • بعد از گذشت زمان کوتاهی یک ردیف مشخصات نصب به لیست نصب ها اضافه می شود که متعلق به گوشی شما است.
  • یک اعلان تست ارسال کنید.دقت کنید تلفن همراه شما به اینترنت متصل باشد.
    توصیه می شود اپلیکیشن را بر روی موبایل یا تبلت اجرا و تست کنید. اگر می خواهید اپلیکیشن را بر روی Emulator تست کنید، بر روی ایمولاتور شما باید Google API نصب باشد.

امکانات

تاپیک (topic)

شما می‌توانید کاربران خود را در تاپیک یا تاپیک‌های متفاوت ثبت نام کنید و برحسب علاقمندی کاربران یا دسته‌بندی خودتان به تاپیک مرتبط پوش بفرستید. مثلا اگر شما اپلیکیشن خبری دارید و کاربرانی به اخبار ورزشی علاقمند هستند و عده ای به اخبار فرهنگی، می توانید دسته اول را در تاپیک ورزشی و دسته دوم را در تاپیک فرهنگی ثبت نام کنید و هنگام ارسال پوش، برحسب محتوای پوش‌تان به تاپیک مرتبط آن را ارسال کنید تا فقط کاربران علاقمند به آن موضوع آن را دریافت کنند. برای استفاده از این امکان باید کاربران خود را در تاپیک مورد نظر عضو کنید. فرض کنید نام تاپیک مورد نظرتان ‍‍‍sport باشد. برای عضویت در این تاپیک از دستور زیر استفاده کنید:

Pushe.subscribe("sport");

برای لغو عضویت از این تاپیک از دستور زیر استفاده کنید:

Pushe.unsubscribe("sport");

توجه داشته باشید که توابع مربوط به عضو شدن و لغو عضویت در تاپیک باید بعد از پایان Pushe.initialize اجرا شوند. بنابراین آنها را بلافاصله بعد از Pushe.initialize قرار ندهید.

غیرفعال کردن نمایش پوش

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

Pushe.setNotificationOff();

برای فعال سازی دوباره ی نمایش پوش از دستور زیر استفاده کنید:

Pushe.setNotificationOn();

ارسال پوش از یک دستگاه به دستگاه دیگر

می‌توانید مستقیم از یک دستگاه به دستگاه دیگر اعلان بفرستید. برای این کار باید شناسه‌ی پوشه‌ی آن دستگاه یعنی pusheId آن را داشته باشید. برای بدست آوردن شناسه هر دستگاه می توانید به روش زیر عمل کنید:

Pushe.getPusheId((pusheId) => 
    let pid=pusheId;
)};

به این روش pid هر دستگاه را می توانید بدست بیاورید و آن‌ها را در سرور خود ذخیره کنید تا برای ارسال اعلان به دستگاه از آن استفاده کنید.

  • برای ارسال اعلان ساده از دستور زیر استفاده کنید:
Pushe.sendSimpleNotifToUser("pid_a0e3-82ac-a0", "title", "content");
  • پارمتر اول pusheId است و پارامتر دوم و سوم به ترتیب تیتر و متن اعلان هستند.
  • برای ارسال اعلان پیشرفته از این دستور استفاده کنید:
Pushe.sendAdvancedNotifToUser("pid_a0e3-82ac-a0", "{ \"title\":\"تست\", \"content\":\"پیام ارسالی از یک دستگاه \" }");
  • پارمتر اول pusheId است و پارامتر دوم یک رشته با فرمت JSON هست که مشخصات اعلان پیشرفته را تعیین می کند. برای دیدن فرمت JSON به اینجا مراجعه کنید.
  • برای ارسال JSON دلخواه از دستور زیر استفاده کنید:
Pushe.sendCustomJsonToUser("pid_a0e3-82ac-a0", "{ \"key1\":\"value1\", \"key2\":\"value2\" }");

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

ارسال رویداد

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

برای ارسال یک رویداد میتوانید از دستور زیر استفاده کنید:

Pushe.sendEvent(eventName, data);

پارامتر اول نام رویداد است و پارامتر دوم که اختیاری است، یک plain JavaScript objects به صورت key-value است . برای مثال :

Pushe.sendEvent("register");

let event={"campaign":"black_friday"}
Pushe.sendEvent("add_to_card",event);

ایجاد و حذف کانال نوتیفیکیشن در اپلیکیشن (Android 8.0+ only)

در اندروید ۸ به بعد قابلیتی برای تعریف کانال نوتیفیکیشن در اپلیکیشن ایجاد شده است. به این شکل که در برنامه خود یک یا چند کانال نوتیفیکیشن تعریف می کنید و در زمان ارسال اعلان پیشرفته با وارد کردن Channel-Id آن کانال می‌توانید اعلان را برای آن کانال خاص ارسال کنید. مزیت این کار این هست که کاربر می تواند دریافت نوتیفیکیشن از بعضی کانال‌ها را غیرفعال کند و همچنان می‌تواند از یک یا چند کانال دیگر اعلان بگیرد. فراخوانی تابع ایجاد یا حذف کانال در حالتی که برنامه شما روی اندروید زیر ۸ اجرا شود، اثری ندارد. همچنین اگر بیشتر از یکبار تابع ایجاد کانال را صدا بزنید هم فقط یکبار کانال ایجاد می‌شود و مشکلی ایجاد نمی‌کند. با استفاده از دستور زیر در برنامه خود می توانید کانال نوتیفیکشن تعریف کنید:

Pushe.createNotificationChannel(
    "MY_CHANNEL_ID", //channelId
    "all news channel", //Channel Name
    "", //description about channel
    4, //importance: Number between 0 to 5 (5 is the most important)
    true, //enableLight
    true, //enableViberation
    true, //showBadge
    Color.BLUE, //led color
    [100, 200, 300, 400, 500, 400, 300, 200, 400] // Vibrate mode 
);

با استفاده از تابع زیر در برنامه خود می‌توانید کانال نوتیفیکشنی که قبلا ایجاد کردید را حذف کنید:

Pushe.removeNotificationChannel(
    "MY_CHANNEL_ID" //channelId
);

عیب یابی

شما می‌توانید خطاهای عمومی موجود در هنگام نصب در اندروید را در این لینک مشاهده نمایید.

همیشه در کنارتان هستیم

در اولین فرصت با ایمیل به شما پاسخ خواهیم داد.

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