يوضّح هذا الدليل كيفية دمج المراجعات داخل التطبيق باستخدام Unity. تتوفّر أدلة دمج منفصلة في حال كنت تستخدم Kotlin أو Java أو الرمز الأصلي أو Unreal Engine.
نظرة عامة على حزمة تطوير البرامج (SDK) في Unity
تشكّل واجهة برمجة التطبيقات Play In-App Review API جزءًا من عائلة حزمة تطوير البرامج (SDK) Play Core. توفّر واجهة برمجة التطبيقات لIDE
Unity فئة ReviewManager
لطلب عملية الربط وإطلاقها باستخدام methods
RequestReviewFlow
وLaunchReviewFlow
. بعد تقديم
طلب، يمكن لتطبيقك التحقّق من حالة الطلب باستخدام
ReviewErrorCode
.
إعداد بيئة التطوير
OpenUPM-CLI
إذا كان لديك واجهة برمجة التطبيقات OpenUPM مثبّتة، يمكنك تثبيت قاعدة بيانات مسجّلي OpenUPM باستخدام الأمر التالي:
openupm add com.google.play.review
OpenUPM
افتح إعدادات مدير الحِزم من خلال اختيار خيار قائمة Unity تعديل > إعدادات المشروع > مدير الحِزم.
أضِف OpenUPM كقاعدة بيانات مسجّلين على مستوى النطاق إلى نافذة "مدير الحِزم":
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 نافذة > مدير الحِزم.
اضبط القائمة المنسدلة لنطاق عمل المدير لاختيار سجلّاتي.
اختَر حزمة Google Play Integrity plugin for Unity من قائمة الحِزم واضغط على تثبيت.
الاستيراد من GitHub
نزِّل أحدث إصدار من
.unitypackage
من GitHub.استورِد ملف
.unitypackage
من خلال اختيار خيار قائمة Unity التالي: مواد العرض > استيراد حزمة > حزمة مخصّصة واستيراد جميع العناصر.
إنشاء ReviewManager
أنشئ مثيلًا من ReviewManager
يعالج الاتصالات بين
تطبيقك وGoogle Play 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();
إذا كان الطلب ناجحًا، ستُرجع واجهة برمجة التطبيقات العنصر 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.
الخطوات التالية
اختبِر مسار المراجعة داخل تطبيقك للتأكّد من أنّ عملية الدمج تعمل بشكلٍ سليم.