背景介紹:
前面寫得幾個帖子已經詳細介紹了:
至此,unity提供給華為的demo已經可以正常運行起來。
這個帖子,准備繼續測試並驗證該demo是否可以滿足以下兩個要求。
-
完成初始化的一些操作
-
實現華為游戲帳號登錄,能夠獲取到玩家的相關信息。
Demo測試后,大家自行參考這個demo設計自己的代碼就好。
涉及Unity提供的接口
初始化接口:
-
HuaweiGameService.AppInit()
-
HuaweiGameService.Init()
登錄相關接口:
-
HuaweiGameService.Login(ILoginListener listener)
-
HuaweiGameService.SilentSignIn(ILoginListener listener)
-
HuaweiGameService.SignOut(ILoginListener listener)
-
HuaweiGameService.CancelAuthorization(ICancelAuthListener listener)
獲取玩家信息相關接口:
- HuaweiGameService.GetCurrentPlayer(bool isRealTime, IGetPlayerListener listener)
上述各接口含義可以參考Unity官網描述
登錄流程
按照華為官網的聯運游戲規則,如果游戲發布地區:
- 包含中國大陸,客戶端需要走如下流程:
AppInit > Init > login > getCurrentPlayer
- 不包含中國大陸,客戶端需要走如下流程:
不強制要求:AppInit > Init > login > getCurrentPlayer
不強制必須登錄華為帳號,可以自行設計游戲登錄。
我這里因為應用要發布中國大陸,所以按照前者要求接入了相關接口。
Demo測試
測試機型說明:
測試機型:Huawei phone,EMUI10.0.0,Android 10
該手機安裝的HMS Core版本是:5.0.4.301
該手機安裝的華為應用市場版本是:11.0.2.302
Unity版本號:2020.1.2f1c1
Unity的demo代碼可參考如下文件,我這里打開瞅了瞅,unity團隊對每個接口是否成功調用都做了界面信息打印,所以實際測試時,我先直接看界面是否有成功提示,沒有再繼續定位原因了,簡單高效。
測試步驟說明
- 啟動demo,界面提示如下:
Unity默認應用啟動時調用HuaweiGameService.AppInit()接口,這個處理也是滿足華為側要求,上述提示表明該接口已經調用成功。
- 點擊Init按鈕,界面和日志如下:
說明:這個接口按照華為聯運游戲要求,在游戲啟動時需要調用的,這里unity做了一個按鈕,實際大家處理時自行在啟動時自動調用。
- 點擊Login > login,手機界面如下:
成功拉起華為帳號登錄授權界面,選擇Authorise and log in后,可以成功看到登錄成功的歡迎提示框,相關日志打印也提示登錄成功。
注意下:這里一定要看到華為登錄歡迎框,之前我對接過華為聯運游戲,因為沒有歡迎框,被華為審核駁回過。
- 點擊getCurrentPlayer按鈕,界面和日志提示如下,表明獲取華為游戲玩家信息接口已經成功。這個接口按照華為游戲要求在login接口處理后需要調用,而且需要對獲取的玩家信息做校驗。
接來下可以參考華為的文檔完成該玩家信息的校驗,
完成玩家信息的校驗並通過后,華為帳號的游戲登錄流程就算完成了。
登錄其他業務接口(按需自行處理了)
- HuaweiGameService.SilentSignIn(ILoginListener listener)
點擊silentSignIn按鈕,界面提示如下,表明接口調用成功。
- HuaweiGameService.SignOut(ILoginListener listener)
點擊signOut按鈕,界面提示如下:
- HuaweiGameService.CancelAuthorization(ICancelAuthListener listener)
點擊cancelAuthorization按鈕,界面提示如下:
重新點擊login按鈕,界面再次拉起登錄授權界面,表明授權確實取消了。
原文鏈接:
https://developer.huawei.com/consumer/cn/forum/topic/0204418750404500554?fid=18
作者:Mayism