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"/> ``

انتقال پوش-پل قدیم به پوش-پل فعلی

طبق اعلام کافه بازار استفاده از SDK قدیمی ronash.pushe باعث ویروسی شناسایی شدن اپ شما می شود. برای حذف SDK قدیمی و جایگزینی با SDK جدید دستورالعمل زیر را دنبال کنید:

نحوه انتقال از پوش پل قدیم به پوش پل فعلی

  • برای انتقال SDK پوشه قدیم به پوش پل، باید SDK قدیمی پوشه را که با عنوان ronash.pushe استفاده شده است را به طور کامل از اپلیکیشن حذف نمایید (که در فایل های manifest، gradle و … استفاده شده است)

  • SDK پوش پل را با استفاده از مراحل زیر به پروژه خود اضافه نمایید:

  • در build.gradle مربوط به اپلیکیشن وارد شوید. مراقب باشید اشتباها به فایل gradle مربوط به پروژه وارد نشوید.

  • کد زیر را در dependencies اضافه کنید.

implementation 'com.push-pole.android:pushpolesdk:2.0.0-beta05'

برای استفاده از قابلیت های اندروید 8 مانند notification channel بایستی TargetSDK برابر 26 یا بالاتر باشد.

در صورتی که قصد دارید در کنار سرویس Firebase-messaging از پوش‌پل استفاده کنید، بخش استفاده‌ی همزمان را مطالعه کنید.

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

در فایل build.gradle مربوط به پروژه مطمئن شوید که لینک های لازم برای دریافت پوش‌پل و کتابخانه های ساپورت موجود هستند

buildscript {
    repositories {
        google()
        mavenCentral()
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }

}
  • در صورتی که هنگام سینک به خطایی برخوردید ابتدا به دنبال خطای خود در [بخش عیب‌یابی][troubleshoot] بگردید.

تغییرات AndroidManifest.xml

  • برای امکان استفاده از سرویس‌های موقعیت‌محور پوش‌پل لازم است که دسترسی استفاده از موقعیت مکانی کاربر را در فایل منیفست پروژه خود قرار دهید.
    برای اضافه کردن این دسترسی، متن زیر را درون تگ manifest در فایل منیفست خود بگذارید.
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

کدام امکانات پوش‌پل موقعیت‌محور محسوب می‌شوند؟

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

  • مشاهده آمار موقعیت جغرافیایی کاربران
  • ارسال اعلان به کاربران بر اساس موقعیت مکانی آن‌ها

تغییرات Application

  • در قسمت import ، کد روبرو را وارد کنید.
import com.pushpole.sdk.PushPole;
  • در onCreate کد روبرو را وارد کنید.
PushPole.initialize(context,true);
  • اگر در تابع بالا مقدار true گذاشته شود و دستگاه کاربر شما گوگل پلی سرویس نداشته باشد و یا آن را غیرفعال کرده باشد دیالوگی باز می شود و به کاربر پیشنهاد نصب گوگل پلی سرویس داده می شود تا قابلیت دریافت و ارسال پوش نوتیفیکیشن فعال شود. اگر در تابع بالا false را قرار دهید، این دیالوگ برای کاربر باز نمی شود.

از آنجایی که اندروید 13 (target 33) برای دریافت اعلان نیاز به دسترسی دارد، در پروژه باید دسترسی اعلان را از کاربر دریافت نمایید

در صورت فعال بودن مقدار minifyenable دستورات زیر را در فایل proguarde اضافه نمایید:

##---------------Begin: proguard configuration for pushpole  ----------
-keep class com.pushpole. { *; }
##---------------End: proguard configuration for pushpole  ----------

##---------------Begin: proguard configuration for Gson  ----------
-keepattributes Signature
-keepattributes *Annotation*
-dontwarn sun.misc.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
##---------------End: proguard configuration for Gson  ----------

##---------------Begin: proguard configuration for retrofit2  ----------
-dontwarn retrofit2.
-keep class retrofit2. { *; }
-keepattributes Exceptions
##---------------End: proguard configuration for retrofit2  ----------

برای اطلاعات بیشتر می توانید داکیومت پوش پل را از طریق لینک زیر مشاهده کنید: راه اندازی پوش-پل

لیست دسترسی هایی که پوش‌پل نیاز دارد

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

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

Internet

پوش‌پل برای دریافت اطلاعات و ردوبدل اعلان نیاز به اینترنت دارد لذا بایستی برنامه بتواند از اینترنت استفاده کند.

Wake_Lock

برای اینکه دستگاه حتی در حالت خواب نیز بتواند اعلان را دریافت کند بایستی ارتباط با شیکه قطع نشود، لذا این دسترسی نیاز است.

Receive_Boot_Completed

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

Access_Network_State

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

Access_Course_Location

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

هیچ نصبی در پنل نیامده

لطفا موارد زیر را چک کنید:

  • پکیج نیمی که در پنل ما ثبت کرده‌اید دقیقا با پکیج نیم اپ شما یکی باشد
  • مانیفستی که استفاده می‌کنید مربوط به اپلیکیشن جدید ثبت‌شده شما باشد
  • دسترسی به اینترنت وجود داشته‌باشد
  • روی دستگاهی تست کنید که گوگل پلی سرویس داشت باشد و فعال باشد
  • اگر از شبیه‌ساز یا امولاتور استفاده می‌کنید مطمئن باشید که دارای گوگل‌پلی‌سرویس باشد

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

لیست پیام ها

یپام وضعیت مشکل احتمالی
Trying to register to FCM در حال تلاش برای ثبت نام در FCM بعضا پیش می آید که سرویس های گوگل برای لحظاتی با کندی مواجه می شوند،‌ این مورد موقت خواهد بود، اگر این مورد زیاد طول کشید با پشتیبانی تماس بگیرید
Successfully registered to FCM با موفقیت در FCM ثبت شد
Trying to register to PushPole در حال تلاش برای ثبت نام در "پوش‌پل" اگر در این حالت مانده است و بارها این پیام در لاگ می‌آید مطابقت نام بسته اپلیکیشن خود را با آنچه در سایت ثبت کرده اید بررسی کنید و دقت کنید که از منیفست همان اپلیکیشن حتما استفاده کرده باشید
Successfully registered to pushpole با موفقیت در "پوش‌پل" ثبت شد
Trying to subscribe to channel: " + channel در حال تلاش برای عضویت در کانال "نام کانال شما"
Successfully subscribed to channel: " + channel با موفقیت در کانال "نام کانال شما"اضافه شد
Trying to unsubscribe from channel: " + channel در حال تلاش برای خارج شدن از کانال "نام کانال شما"
Successfully unsubscribed from channel: " + channel با موفقیت از کانال "نام کانال شما" خارج شد
پیام راه حل
"bad topic name, topic name must just contains [a-zA-Z0-9-_.~%]{1,900}" نام کنال خود را به خوبی انتخاب نکرده اید. نام انتخابی باید تنها شامل [a-zA-Z0-9-_.~%] باشد.
"Initializing PushPole failed, " این خطا ممکن است به دلایل مختلف پیش بیاید. با بخش پشتیبانی تماس بگیرید.
"PushPole must be initialized before unsubscribing from a topic" تابع PushPole.initialize را باید در کد MainActivity.java فراخوانی کنید. به آموزش نصب مراجعه کنید.
"Failed to load meta-data from manifest, Token not found" کد مربوط به meta-data پوش‌پل را در مانیفست خود قرار نداده اید. این کد را از فایل مانیفست در اختیار گذاشته شده در پنل، به مانیفست اپلیکیشن خود اضافه کنید.
"Failed to load meta-data from manifest, Token is null" توکن موجود در مانیفست خالی است. این توکن را ازفایل مانیفست در اختیار گذاشته شده در پنل، به مانیفست اپلیکیشن خود اضافه کنید.
"Failed to load meta-data from manifest, Bad Token" فرمت توکن قرار داده شده اشتباه است. توکن صحیح را از فایل مانیفست در اختیار گذاشته شده در پنل، به مانیفست اپلیکیشن خود اضافه کنید.
"Google play services problem: " + result گوگل پلی سرویس استفاده شده نصب نشده است و یا به روز نیست. به صفحه آموزش مراجعه کنید.
"PushPole must be initialized before subscribing to a topic" تابع PushPole.initialize را باید در کد MainActivity.java فراخوانی کنید. به آموزش نصب مراجعه کنید.
“FCM error:” + error با بخش پشتیبانی تماس بگیرید.
"SERVICE‌ ‌ NOT‌ ‌ AVAILABLE دستگاهی که برنامه روی آن اجرا شده به اینترنت وصل نیست.