مراحل پیاده سازی نجوا برای یونیتی

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

پیاده‌سازی از طریق پکیج نجوا

۱. پکیج مربوطه را در یونیتی باز کنید.
۲. پریفب najva را در scene رها کنید.

پوش نوتیفیکیشن در یونیتی

۳. کد najvaInit را با کد دریافتی از پنل نجوا جایگزین کنید .
۴. در build settings نوع خروجی را بر روی gradle تنظیم کنید.
۵. خروجی گرفته و یک نسخه از فایل AndroidManifest.xml خود را در Assets/Plugins/Android قرار دهید.
اگر مانیفست ندارید یک نسخه از آن را از مسیر زیر دریافت کنید:
Project/Temp/StagingArea/
در هنگام تهیه خروجی برای اندروید یک مانیفست در آدرس فوق ساخته می شود
۶. manifest را مطابق شکل زیر تغییر دهید.

<application android:theme="@style/Theme.AppCompat.Light" android:icon="@drawable/app_icon" android:label="@string/app_name" android:isGame="true" android:banner="@drawable/app_banner">

اضافه کردن اکتیویتی های مورد نیاز

 
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="@string/default_notification_channel_id" />

<activity android:name="com.najva.najvasdk.Activity.NajvaActivity" ></activity>
<activity android:name="com.najva.najvasdk.Activity.DialogActivity" ></activity>

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

<receiver android:name="com.najva.najvasdk.Receiver.NetworkReceiver" >
  <intent-filter>
    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" ></action>
  </intent-filter>
</receiver>
<receiver android:name="com.najva.najvasdk.Receiver.InstallPackageReceiver" >
  <intent-filter>
    <action android:name="android.intent.action.PACKAGE_INSTALL" ></action>
    <action android:name="android.intent.action.PACKAGE_ADDED" ></action>

    <data android:scheme="package" ></data>
  </intent-filter>
</receiver>
<receiver android:name="com.najva.najvasdk.Receiver.UninstallPackageReceiver" >
  <intent-filter>
    <action android:name="android.intent.action.PACKAGE_REMOVED" ></action>
    <data android:scheme="package" ></data>
  </intent-filter>
</receiver>
<receiver android:name="com.najva.najvasdk.Receiver.ChangeSimcardReceiver" >
  <intent-filter>
    <action android:name="android.intent.action.SIM_STATE_CHANGED" ></action>
  </intent-filter>
</receiver>

اگر مراحل فوق را درست طی کرده باشید مانیفست شما باید چیزی شبیه این باشد:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.C123.P123" xmlns:tools="http://schemas.android.com/tools" android:installLocation="preferExternal">
  <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" ></supports-screens>
  <application android:theme="@style/Theme.AppCompat.Light" android:icon="@drawable/app_icon" android:label="@string/app_name" android:isGame="true" android:banner="@drawable/app_banner">
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:screenOrientation="fullSensor" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density" android:hardwareAccelerated="false">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" ></action>
        <category android:name="android.intent.category.LAUNCHER" ></category>
        <category android:name="android.intent.category.LEANBACK_LAUNCHER" ></category>
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>
    <meta-data android:name="unity.build-id" android:value="00001d5e-9999-4d05-0000-00147d16f006" />
    <meta-data android:name="unity.splash-mode" android:value="0" />
    <meta-data android:name="unity.splash-enable" android:value="True" />
    <meta-data           android:name="com.google.firebase.messaging.default_notification_channel_id"           android:value="@string/default_notification_channel_id" />

    <activity android:name="com.najva.najvasdk.Activity.NajvaActivity" ></activity>
    <activity android:name="com.najva.najvasdk.Activity.DialogActivity" ></activity>

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

    <receiver android:name="com.najva.najvasdk.Receiver.NetworkReceiver" >
      <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" ></action>
      </intent-filter>
    </receiver>
    <receiver android:name="com.najva.najvasdk.Receiver.InstallPackageReceiver" >
      <intent-filter>
        <action android:name="android.intent.action.PACKAGE_INSTALL" ></action>
        <action android:name="android.intent.action.PACKAGE_ADDED" ></action>

        <data android:scheme="package" ></data>
      </intent-filter>
    </receiver>
    <receiver android:name="com.najva.najvasdk.Receiver.UninstallPackageReceiver" >
      <intent-filter>
        <action android:name="android.intent.action.PACKAGE_REMOVED" ></action>

        <data android:scheme="package" ></data>
      </intent-filter>
    </receiver>
    <receiver android:name="com.najva.najvasdk.Receiver.ChangeSimcardReceiver" >
      <intent-filter>
        <action android:name="android.intent.action.SIM_STATE_CHANGED" ></action>
      </intent-filter>
    </receiver>
  </application>
  <uses-feature android:glEsVersion="0x00020000" ></uses-feature>
  <uses-permission android:name="android.permission.INTERNET" ></uses-permission>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" ></uses-permission>
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="18" ></uses-permission>
  <uses-feature android:name="android.hardware.touchscreen" android:required="false" ></uses-feature>
  <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" ></uses-feature>
  <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" ></uses-feature>
</manifest>

۷. خروجی گرفته و از نوتیفیکیشن ها لذت ببرید.

عدم استفاده از najvaInit

۱. یک اسکریپت C#  ساخته و آن را به یک gameobject  در scene اختصاص دهید.

* GameObject نباید حذف شود.

۲. از توابع زیر برای فراخوانی نجوا استفاده کنید.

Najva.init(<strong>this</strong>.gameObject, CampaignId, WebsiteId, ApiKey, <strong>UseLocation</strong>);//برای دریافت اطلاعات نوتیفیکیشن ها
Najva.SetUserHandler();

دو متد زیر callback  از نجوا هستند:

<strong>public void </strong>onMessageRecieved(<strong>string </strong>json)
{

}

<strong>public void </strong>najvaUserSubscribed(<strong>string </strong>token)
<strong>{</strong><strong>

}</strong>

با استفاده از playServiceResolver

۱. پکیج مربوطه را در یونیتی import کنید.

۲. از اتصال vpn خود مطمئن شوید.

۳. از منوی assets/play service resolver/android/ و بر روی force resolve کلیک کنید.

۴. صبر کنید تا مراحل Resolve تکمیل شود.

۵. یک مانیفست از stagingArea تهیه کرده و مطابق توضیحات صفحات قبل آن را تغییر دهید.

۶. مانیفست را در Assets/Plugins/Android قرار دهید

۷. خروجی گرفته و از نوتیفیکیشن ها لذت ببرید.