1. 程式人生 > >Unity 下整合第三方原生 SDK,以極光廠商通道為例

Unity 下整合第三方原生 SDK,以極光廠商通道為例

Unity中整合三方SDK有兩種方式:

Unity 專案開發中時常有整合 Android 第三方 SDK 的需求,比如接入第三方推送,分享等功能。而第三方 SDK 的整合文件提到的往往是基於原生 Android 專案整合。

第一種 匯出 gradle 專案進行整合

匯出 gradle 專案的方式可以直接將專案匯入 AndroidStudio 中進行整合,而此時可以直接按照第三方整合文件完成整合。

第二種 直接在 Unity 中整合

有些公司是基於 Unity 專案結構進行自動打包的,這樣匯出 gradle 專案的整合方式就不適用於自動打包流程,只能直接在 Unity 專案中直接整合 SDK 才能滿足需求。這時候基於原生 Android 專案的 SDK 的整合步驟對應 Unity 中就要稍作修改。

舉例

本文以整合極光推送廠商通道為例介紹如何在 Unity 整合 第三方SDK。

JPush

JPush 是極光官方的推送 SDK,整合後可以通過呼叫 API 推送訊息,並且官方提供了對應 Unity 平臺使用的外掛 jpush-unity3d-plugin。首先參照外掛整合方式整合基礎版本的JPush,這裡以 JPush v3.1.6 為例,對應外掛版本 v3.2.7 ,整合成功後能夠成功接受後臺推送,並且 Unity 對應結構:

廠商通道

極光推送 VIP 服務提供了切換包括小米,華為,魅族等各個平臺廠商通道服務,切換系統級別的推送通道,提高推送送達率,詳情聯絡商務。

注意,廠商通道整合成功的前提是基礎版已經能成功收到推送。

華為通道為例

獲取到對應 v3.1.6 的廠商通道文件,開啟華為整合指南可以看到大致步驟:

現在我們要整合廠商通道怎麼做:

  • 第一種:匯出 gradle 專案的整合方式,直接對應上面步驟配置即可。
  • 第二種:直接在 Unity 中整合。

第一種方式就不說了,下面對應步驟介紹第二種整合方式:

1.增加華為HMS SDK的推送包及資原始檔

  • 將third-push/huawei/res裡面的資源複製到工程/res中對應的目錄
  • 將third-push/huawei/libs中的包新增到工程/libs目錄下。
    --------------- 對應到 Unity 就是 ----------------
  • 將 third-push/huawei/res 裡面的資源複製到工程 plugins/android/res 中對應的目錄,res 不存在就新建一個。
  • 將third-push/huawei/libs中的包新增到工程plugins/android目錄下,與 jpush.aar 同級。

2.增加support v4包

  • JPush 3.0.9 版本後不需要新增,略過
    3.修改 minSdkVersion 的值

4.配置HMS SDK Push必須的元件

5.配置接收 HMS 訊息的廣播接收器

6.替換 HMS 的 appid

  • 這四步對應文件修改 plugin/android/AndroidManifest.xml 即可。
    7.在build.gradle中配置在華為後臺新增的指紋證書對應的簽名
  • 這步要保證你的應用簽名和在華為聯盟後臺註冊的指紋簽名證書一致,請仔細檢查。

走完這七步整合就結束了,對應的 Unity 結構:

然後呼叫推送初始化和開啟 debug 模式。執行應用並檢視初始化 log,系統要求 EMUI4.1 或往上,整合成功會在 log 中列印華為 token 資訊。

擴充套件

除了上述整合方式,也可以在 AS 中新建 module 整合上述 jar 包,並打包成 aar 給 Unity 使用。極光的推送外掛就是這樣做的,所以可以直接下載極光外掛原始碼,整合完直接統一打包成 aar 使用。
需要注意的是,已經是 aar 的檔案無法打包,比如上述的華為通道中的 HMSSdk-agent.aar 無法打包進外掛,還是得單獨放在 plugin/android 下編譯。