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工程已卸載,且新安裝了項目工程,但是緩存未清理導致了項目推送圖標出現問題。重啓手機即可解決。