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"/>
برای استفاده باید نسخه‌ی یونیتی شما حداقل 5.0 باشد.

راه‌اندازی

ایمپورت‌کردن کتابخانه

  • در صورتی‌که از نسخه‌ی 1.4 به 1.6 مهاجرت کرده‌ابد به بخش مهاجرت از نسخه‌ی ۱.۴ به ۱.۶ مراجعه کنید.

کتابخانه پوشه برای Unity را از این لینک دانلود کنید. در پروژه یونیتی خود بر روی فولدر Assets کلیک راست کنید و از Import Package بر روی Custom Package کلیک کنید و فایل پکیج دانلود شده بالا را انتخاب کنید.

  • از منوی Assets -> Play Service Resolver -> Android Resolver گزینه‌ی Resolve را انتخاب کنید. (با توجه به تحریم‌بودن سرورهای گریدل از ابزارهای گذر از تحریم استفاده‌کنید).

از مسیر Assets/Pushe پریفب PushePrefab را درگ کرده و در پنجره ی Hierarchy رها کنید.

تنظیمات پروژه

از منوی File گزینه ی Build Setting را فشار دهید. در بین پلتفرم ها Android را انتخاب کنید و دکمه ی Player Setting را بزنید. در قسمت Bundle Identifier از همین پنجره، پکیج نیم اپلیکیشن خود را وارد کنید.

تغییرات AndroidManifest.xml

وارد پنل پوشه شوید و اپلیکیشن خود را ثبت کنید. توجه داشته باشید که از همان Package Name استفاده کنید که در مرحله‌ی قبل به عنوان Bundle Identifier وارد کرده‌اید. فایل منیفست مربوط به Unity را دانلود کنید و محتوای آن را در منیفست خود در مسیر Assets/Plugins/Android ادغام نمایید. اگر فایلAndroidManifest.xml در این مسیر موجود نیست، ابتدا این فایل را از مسیر C:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\apk کپی کرده و در مسیر Assets/Plugins/Android از پرو‌ژه‌ی خود paste کنید.

برخی از دسترسی‌ها (permissions) برای پوشه اختیاری است. این دسترسی ها برای ارسال هدفمند اعلان به کاربران است. شما قادر خواهید‌بود با استفاده از این دسترسی‌ها کاربران خود را دسته‌بندی کنید و اعلان‌های خود را هدفمند ارسال کنید. برای اطلاعات بیشتر از دسترسی‌ها به عیب‌یابی مراجعه کنید.

تست

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

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

توصیه می‌شود اپلیکیشن را بر روی موبایل یا تبلت اجرا و تست کنید. اگر می‌خواهید اپلیکیشن را بر روی Emulator تست کنید، بر روی ایمولاتور شما باید Google API نصب باشد.

امکانات

تاپیک (topic)

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

برای استفاده از این امکان باید کاربران خود را در تاپیک مورد نظر عضو کنید. فرض کنید نام تاپیک مورد نظرتان varzeshi باشد. برای عضویت در تاپیک، فایل Pushe.cs را در مسیر Assets/Pushe باز کرده و تابع Subscribe را با ورودی "varzeshi" روی event مورد نظر خودتان (مثلا در دکمه ای در منوی تنظیمات) صدا بزنید.

برای لغو عضویت از این تاپیک تابع Unsubscribe را با ورودی "varzeshi" روی event مورد نظر خودتان صدا بزنید.

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

دریافت جیسون

در حال حاضر این امکان برای پلتفرم یونیتی موجود نیست.

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

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

برای غیرفعال کردن نمایش پوش باید از تابع SetNotificationOff استفاده کنید. این تابع در کلاس Pushe.cs در مسیر Assets/Pushe قرار دارد.

برای فعال‌سازی دوباره ی نمایش پوش از تابع SetNotificationOn در کلاس Pushe.cs استفاده کنید. فراخوانی این توابع را در event موردنظر خود (مثلا در کلیک دکمه ای در منوی تنظیمات) قرار دهید.

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

نکته‌ی مهم: توابع ارسال اعلان به دستگاه دیگر و عضویت یا لغو عضویت در تاپیک را بعد از اطمینان از اینکه عملیات initialization پوشه انجام شده است، صدا بزنید. برای این کار در کلاس Pushe.cs که در قسمت Assets/Pushe پلاگینی پوشه که به پروژه اضافه کرده‌اید است، کدهای زیر را قرار دهید (یا در محل دیگری که موردنظرتان هست آن را فراخوانی کنید):

    activityContext.Call("runOnUiThread", new AndroidJavaRunnable(() =>
    {
        if(PusheIsInitialized())
        {
            SendSimpleNotifToUser("pid_ac70-e04e-3a", "device to device msg", "unity d2d msg");
        }
    }));

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

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

    CreateNotificationChannel(
                context,
        "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
                -16776961, //led color
                new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400} // Vibrate mode (can be Nullable)
    );

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

    RemoveNotificationChannel(
                context,
                "MY_CHANNEL_ID" //channelId
    );

سایر قابلیت ها را در فایل Pushe.cs می‌توانید مشاهده کنید.

مهاجرت از نسخه‌ی ۱.۴ به ۱.۶

با توجه به اینکه از Unity jar resolver در یونیتی استفاده‌شده است، نیازی به فایل های آفلاین قبلی ندارید، لذا بایستی تمام فایل‌های از قبل اضافه شده توسط پوشه را حذف کنید (و فقط فایل مانیفست خود را نگه دارید). سپس فایل مانیفست را باز کرده و جز خط زیر بقیه‌ی خطوط را در تگ Application حذف کنید (منظور خطوط مانیفست مربوط به پوشه است):

 <meta-data android:name="co.ronash.pushe.token" android:value="PUSHE_TOKEN"/>

دیگر موارد بیرون تگ Application هم همانند قبل باقی بمانند.

سپس پکیج جدید را اضافه‌کرده و مطابق راهنمای جدید پوشه‌ی جدید را به برنامه اضافه کنید.

عیب یابی

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


نصب بعد از مدت طولانی در کنسول دیده نمی‌شود

در حالت عادی نصب نبایستی بیش از ۱ یا ۲ دقیقه به طول انجامد. در صورتی که این مدت طولانی شد ابتدا پروسه‌ی اضافه‌کردن پوشه را مرور کنید:

  • پیام Resolution succeeded در یونیتی مشاهده می‌شود.
  • گیم‌آبجکت پوشه به Scene اصلی اضافه‌شده است.
  • اسکریپتی که پوشه را initialize می‌کند به گیم‌آبجکت اتچ‌شده‌است.
  • در صورتی‌که به لاگ‌کت اندروید دسترسی دارید (مثلا با اندرویداستودیو یا ADB) از مشاهده‌ی Successfully registered to Pushe مطمئن شوید. در غیر اینصورت بایستی خطا را بررسی کنید.

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


Resolution failed

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

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

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

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