Unity3D集成極光推送--安卓版

1:註冊

官網註冊賬戶,創建應用

2:demo體驗

應用設置–>推送設置中,設置好應用包名後,即可下載體驗包
在這裏插入圖片描述

3:官方教程

官方提供的是泛安卓平臺下的集成方法Android SDK集成指南,筆者使用文中提到的手動集成方法。

3.1 SDK下載

資源下載

3.2 必要資源複製

  • 解壓縮安卓版SDK包:jpush-android-3.x.x-release.zip
  • 複製libs/jcore-android-2.3.0.jar到Unity工程的Plugins/Android/libs目錄下
  • 複製libs/jpush-android-3.5.8.jar到Unity工程的Plugins/Android/libs目錄下
  • 複製libs/armeabi-v7a目錄和libs/arm64-v8a目錄到Unity工程Plugins/Android/libs目錄下,其餘小衆版本不需要再考慮了
  • 再複製res目錄到Plugins/Android目錄下,即和libs同級目錄

注意 默認情況下推送圖標和工程的圖標一致,在 5.0 以上系統將應用圖標作爲 statusbar icon 可能顯示不正常,用戶可以在res/drawable-hdpi下新增jpush_notification_icon.png圖標即可顯示正常。

3.3 初始化

在android studio中寫了個繼承自UnityPlayerActivity的MainActivity.java,並設置腳本所在包名和項目一致,在該腳本中對JPUSH初始化

public class MainActivity extends UnityPlayerActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       Log.d("unityPlugin","-------->初始化JPUSH");
       JPushInterface.setDebugMode(true);
       JPushInterface.init(this);
   }
}

注意,對於發佈版本,儘量設置setDebugMode(false)

3.4 配置AndroidManifest.xml和必要代碼

3.4.1 啓動Activity需要改成上述提到的MainActivity

<activity android:label="@string/app_name" 
		android:name=".MainActivity"
		android:screenOrientation="sensorLandscape">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

這裏有一點需要注意,即.MainActivity寫法的問題,在某些版本unity上打包後會出現java.lang.ClassNotFoundException Did not find class com.unity3d.player.MainActivity的問題,解決方法見這裏

3.4.2 根據SDK壓縮包中的AndroidManifest.xml樣例文件以及示例代碼來配置

  • 複製備註爲“Required”的部分(權限、以及後續JPUSH配置)
  • 將標註爲 ${applicationId}的改成包名,將標註爲 ${JPUSH_CHANNEL}的改成自己可識別的渠道字符串,將標註爲
    ${JPUSH_APPKEY}的改成後臺創建應用時生成的APPKEY
  • 3個標註爲User defined的,需要配置在xml中,且需要在插件端實現,不然出的包會報錯並給出對應的提示(筆者是在和項目同名的包下創建對應的java腳本,然後分別拷貝壓縮包中com.example.jpushdemo.MyReceiver, com.example.jpushdemo.PushMessageReceiver, com.example.jpushdemo.PushService三個腳本的代碼,把不需要的代碼<比如打開其他activity等>註釋)

4 github版本

github上有專門的針對Unity3D的激光推送package,版本稍微有點落後,有興趣的可以試一下:jpush-unity3d-plugin

5 異常分析

筆者有遇到項目的推送圖標還是極光的圖標,導致原因是先打開了極光的demo工程,由於demo工程配置了和項目工程一致的包名,雖然demo工程已卸載,且新安裝了項目工程,但是緩存未清理導致了項目推送圖標出現問題。重啓手機即可解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章