本導覽說明如何在應用程式中使用 Unity 整合應用程式內審查。如果您使用的是 Kotlin 或 Java 或原生程式碼,分別有不同的整合導覽可供查閱。
Unity SDK 總覽
Play 應用程式內審查 API 屬於 Play Core SDK 系列的一部分。適用於 Unity 的 API 提供 ReviewManager
類別,可利用 RequestReviewFlow
和 LaunchReviewFlow
方法要求及啟動流程。提出要求後,應用程式就能使用 ReviewErrorCode
查看要求的狀態。
設定開發環境
OpenUPM-CLI
如果您已安裝 OpenUPM CLI,可以使用下列指令安裝 OpenUPM 登錄:
openupm add com.google.play.review
OpenUPM
選取 Unity 選單選項「Edit」>「Project Settings」>「Package Manager」,開啟套件管理工具設定。
將 OpenUPM 新增為 Package Manager 視窗中的有範圍限制的登錄檔:
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.review
選取 Unity 選單選項「Window」>「Package Manager」,即可開啟「package manager」選單。
將管理員範圍下拉式選單設為「我的註冊中心」。
從套件清單中選取「Google Play Integrity 外掛程式 (適用於 Unity)」套件,然後按下「Install」。
從 GitHub 匯入
從 GitHub 下載最新的
.unitypackage
版本。選取 Unity 選單選項「Assets」>「Import package」>「Custom Package」,然後匯入所有項目,即可匯入
.unitypackage
檔案。
建立 ReviewManager
建立 ReviewManager
執行個體以處理應用程式和 API 之間的通訊。
// Create instance of ReviewManager
private ReviewManager _reviewManager;
// ...
_reviewManager = new ReviewManager();
要求 ReviewInfo 物件
請按照何時要求應用程式內評論指南,決定在應用程式的使用者流程中,提示使用者進行評論的正確時間點 (例如使用者在遊戲關卡結束後關閉總結畫面時)。當應用程式接近其中一個時間點時,使用 ReviewManager
執行個體來建立一個非同步作業,如以下範例所示:
var requestFlowOperation = _reviewManager.RequestReviewFlow();
yield return requestFlowOperation;
if (requestFlowOperation.Error != ReviewErrorCode.NoError)
{
// Log error. For example, using requestFlowOperation.Error.ToString().
yield break;
}
_playReviewInfo = requestFlowOperation.GetResult();
如果呼叫成功,API 會回傳啟動應用程式內評論流程所需的 PlayReviewInfo
物件。在範例中,協同程式內會進行呼叫以執行非同步作業 (這不會封鎖到主要執行緒)。由於呼叫屬於非同步,因此可能需要幾秒鐘的時間,應用程式應先呼叫,然後才會到使用者流程中要顯示應用程式內評論的時間點。
啟動應用程式內評論流程
應用程式收到 PlayReviewInfo
執行個體後,即可啟動應用程式內評論流程。請注意,PlayReviewInfo
物件有效的時間有限,因此應用程式在啟動流程之前,不應等待過久。
var launchFlowOperation = _reviewManager.LaunchReviewFlow(_playReviewInfo);
yield return launchFlowOperation;
_playReviewInfo = null; // Reset the object
if (launchFlowOperation.Error != ReviewErrorCode.NoError)
{
// Log error. For example, using requestFlowOperation.Error.ToString().
yield break;
}
// The flow has finished. The API does not indicate whether the user
// reviewed or not, or even whether the review dialog was shown. Thus, no
// matter the result, we continue our app flow.
後續步驟
測試應用程式內評論流程,以確認這項整合機制能正常運作。