دمج المراجعات داخل التطبيق (Unreal Engine)

يوضّح هذا الدليل كيفية دمج المراجعات داخل التطبيق باستخدام Unreal Engine. تتوفّر أدلة دمج منفصلة إذا كنت تستخدم Kotlin أو Java أو الرمز الأصلي أو Unity.

نظرة عامة على حزمة تطوير البرامج (SDK) لمحرك Unreal

تشكّل واجهة برمجة التطبيقات Play In-App Reviews API جزءًا من مجموعة حِزم تطوير البرامج (SDK) Play Core. تقدّم واجهة برمجة التطبيقات لمحرك Unreal فئة UInAppReviewsManager لطلب عملية البث وإطلاقها باستخدام الطريقتَين RequestReviewFlow وLaunchReviewFlow. بعد إرسال طلب، يمكن لتطبيقك التحقّق من حالة الطلب باستخدام EInAppReviewErrorCode.

إصدارات Unreal Engine المتوافقة

يتوافق المكوّن الإضافي مع Unreal Engine 5.0 وجميع الإصدارات اللاحقة.

إعداد بيئة التطوير

ضبط إعدادات الجهاز

  1. نزِّل مكوّن Play Unreal Engine الإضافي من مستودع GitHub.

  2. انسخ مجلد GooglePlay داخل مجلد Plugins في مشروع Unreal Engine.

  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 create عملية، كما هو موضّح في المثال التالي:

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 ربط المفوَّض بشكل صحيح بمحاولة callback.

  4. تبدأ الطريقة RequestReviewFlow(Delegate) عملية المراجعة، مع تمرير المفوّض للتعامل مع النتيجة.

  5. يتم تنفيذ عملية المراجعة بشكل غير متزامن، ما يسمح بمواصلة المهام الأخرى في التطبيق أثناء اكتمالها.

  6. بعد انتهاء العملية، يعالج OnReviewOperationCompleted callback النتيجة، بما في ذلك النجاح أو الفشل.

بدء عملية المراجعة داخل التطبيق

بعد اكتمال عملية RequestReviewFlow، يمكنك بدء عملية 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);
}

الخطوات التالية

اختبِر مسار المراجعة داخل تطبيقك للتأكّد من أنّ عملية الدمج تعمل بشكلٍ سليم.