整合應用程式內評論 (Unreal Engine)

本指南說明如何使用 Unreal Engine 將應用程式內評論整合至應用程式。如果您使用的是 Kotlin 或 Java原生程式碼Unity,請參閱不同的整合指南。

Unreal Engine SDK 總覽

Play 應用程式內評論 API 屬於 Play Core SDK 系列的一部分。Unreal Engine 的 API 提供 UInAppReviewsManager 類別,可使用 RequestReviewFlowLaunchReviewFlow 方法要求及啟動流程。提出要求後,應用程式就能使用 EInAppReviewErrorCode 查看要求的狀態。

支援的 Unreal Engine 版本

外掛程式支援 Unreal Engine 5.0 和後續所有版本。

設定開發環境

設定

  1. 從 GitHub 存放區下載 Play Unreal Engine 外掛程式

  2. 複製 Unreal Engine 專案中 Plugins 資料夾內的 GooglePlay 資料夾。

  3. 開啟 Unreal Engine 專案,然後依序點選「Edit」→「Plugins」

  4. 搜尋「Google Play」,然後勾選「已啟用」核取方塊。

  5. 重新啟動遊戲專案並觸發建構作業。

  6. 開啟專案的 Build.cs 檔案,並將 PlayInAppReviews 模組新增至 PublicDependencyModuleNames

    using UnrealBuildTool;
    
    public class MyGame : ModuleRules
    {
      public MyGame(ReadOnlyTargetRules Target) : base(Target)
      {
        // ...
    
        PublicDependencyModuleNames.Add("PlayInAppReviews");
    
        // ...
      }
    }
    

要求應用程式內評論流程

請按照何時要求應用程式內評論指南,決定在應用程式的使用者流程中,提示使用者進行評論的正確時間點 (例如使用者在遊戲關卡結束後關閉總結畫面時)。如果您的應用程式接近上述其中一個時間點,請使用 UInAppReviewsManager 建立作業,如以下範例所示:

MyClass.h

void MyClass::OnReviewOperationCompleted(EInAppReviewErrorCode ErrorCode)
{
  // ...
}

MyClass.cpp

void MyClass::RequestReviewFlow()
{
  // Create a delegate to bind the callback function.
  FReviewOperationCompletedDelegate Delegate;

  // Bind the completion handler (OnReviewOperationCompleted) to the delegate.
  Delegate.BindDynamic(this, &MyClass::OnReviewOperationCompleted);

  // Initiate the review flow, passing the delegate to handle the result.
  GetGameInstance()
    ->GetSubsystem<UInAppReviewsManager>()
    ->RequestReviewFlow(Delegate);
}
  1. 該方法會建立 FRreviewOperationCompletedDelegate,以處理審查作業的完成情形。

  2. 委派函式會繫結至 OnReviewOperationCompleted 方法,系統會在作業完成後呼叫此方法。

  3. BindDynamic 函式可確保委派作業正確連結至回呼。

  4. RequestReviewFlow(Delegate) 方法會啟動審查程序,並傳遞委派函來處理結果。

  5. 審查作業會以非同步方式執行,讓應用程式中的其他工作在完成時繼續執行。

  6. 作業完成後,OnReviewOperationCompleted 回呼會處理結果,包括成功或失敗。

啟動應用程式內評論流程

RequestReviewFlow 作業完成後,您可以啟動應用程式內的審查流程。方法是繫結委派作業來處理完成事件,確保應用程式會回應審查要求的結果 (成功或失敗)。

MyClass.h

void MyClass::OnReviewOperationCompleted(EInAppReviewErrorCode ErrorCode)
{
  // ...
}

MyClass.cpp

void MyClass::LaunchReviewFlow()
{
  // Create a delegate to bind the callback function.
  FReviewOperationCompletedDelegate Delegate;

  // Bind the completion handler (OnReviewOperationCompleted) to the delegate.
  Delegate.BindDynamic(this, &MyClass::OnReviewOperationCompleted);

  // Launch the review flow, passing the delegate to handle the result.
  GetGameInstance()
    ->GetSubsystem<UInAppReviewsManager>()
    ->LaunchReviewFlow(Delegate);
}

後續步驟

測試應用程式的應用程式內審查流程,確認整合是否正常運作。