لن يتلقى أي تحديثات مستقبلية أو إصلاحات أخطاء. إذا كنت تستخدمه ، فيرجى الترحيل إلى حل آخر.
Irate هي مكتبة لمساعدتك على الترويج لتطبيقات متجر تطبيقات iPhone و Mac من خلال دفع المستخدمين لتقييم التطبيق بعد استخدامه لبضعة أيام. يعد هذا النهج أحد أفضل الطرق للحصول على مراجعات تطبيقات إيجابية من خلال استهداف المستخدمين العاديين فقط (الذين يُفترض أنهم يحبون التطبيق أو لن يستمروا في استخدامه!).
ملاحظة: "المدعوم" يعني أنه تم اختبار المكتبة مع هذا الإصدار. "متوافق" يعني أن المكتبة يجب أن تعمل على إصدار نظام التشغيل هذا (أي أنها لا تعتمد على أي ميزات SDK غير متوفرة) ولكن لم يعد يتم اختبارها من أجل التوافق وقد تتطلب تغيير التعديل أو الأخطاء بشكل صحيح.
اعتبارًا من الإصدار 1.7 ، يتطلب الغضب قوسًا. إذا كنت ترغب في استخدام Irate في مشروع غير ARC ، فما عليك سوى إضافة علامة مترجم -FOBJC-ARC إلى فئة Irate.m. للقيام بذلك ، انتقل إلى علامة تبويب مراحل البناء في إعدادات المستهدف الخاصة بك ، افتح مجموعة مصادر الترجمة ، انقر نقرًا مزدوجًا.
إذا كنت ترغب في تحويل مشروعك بالكامل إلى ARC ، فقم بالتعليق على خط #error في Irate.m ، ثم قم بتشغيل التحرير> refactor> التحويل إلى أداة ARC ... استخدم ARC لـ (بما في ذلك IRATE.M).
يستخدم Irate الخيوط داخليًا لتجنب حظر واجهة المستخدم ، ولكن أيا من الواجهات الخارجية الغاضبة آمنة ويجب ألا تستدعي أي طرق أو تعيين أي خصائص على الغضب إلا من الخيط الرئيسي.
لتثبيت الغضب في تطبيقك ، اسحب ملفات Irate.h و .m و .bundle في مشروعك. يمكنك حذف .bundle إذا لم تكن مهتمًا بالنص الموضعي.
لا يتطلب الغضب عادة أي تكوين على الإطلاق وسيتم تشغيله تلقائيًا ، باستخدام معرف حزمة التطبيق للبحث عن معرف التطبيق في متجر التطبيقات.
ملاحظة: إذا كان لديك تطبيقات تحتوي على معرفات حزمة مطابقة على كل من متاجر تطبيقات Mac و IOS (حتى لو استخدموا رسملة مختلفة) ، فلن تعمل آلية البحث ، لذلك ستحتاج إلى تعيين خاصية AppStoreId يدويًا ، وهي أ معرف رقمي يمكن العثور عليه في iTunes Connect بعد إعداد تطبيق. أيضًا ، إذا كنت تقوم بإنشاء تطبيق MAC ذو رمل ولم يطلب تطبيقك إذن الوصول إلى الشبكة ، فستحتاج إلى تعيين AppStoreId لأنه لا يمكن استرداده من خدمة iTunes.
إذا كنت ترغب في تخصيص الغضب ، فإن أفضل وقت للقيام بذلك هو في AppDelegate الخاص بك -[application:didFinishLaunchingWithOptions:]
. قد لا يعمل تطبيق التكوين لاحقًا ، لأن المطالبة قد تكون قد تم عرضها بالفعل في تلك النقطة:
#import "iRate.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//configure iRate
[iRate sharedInstance].daysUntilPrompt = 5;
[iRate sharedInstance].usesUntilPrompt = 15;
return YES;
}
لتكوين الغضب ، هناك عدد من خصائص الطبقة الغاضبة التي يمكن أن تغير سلوك ومظهر الغضب. يجب أن تكون هذه في الغالب توضيحية ذاتية ، لكنها موثقة أدناه:
@property (nonatomic, assign) NSUInteger appStoreID;
يجب أن يتطابق مع معرف تطبيق iTunes الخاص بك ، والذي يمكنك الحصول عليه من iTunes Connect بعد إعداد تطبيقك. هذه القيمة ليست ضرورية عادةً ولا تكون هناك حاجة بشكل عام فقط إذا كان لديك تعارض مذكور أعلاه بين معرفات الحزمة لتطبيقات Mac و iOS الخاصة بك ، أو في حالة تطبيقات MAC ذات الرمل ، إذا لم يكن تطبيقك إذنًا على الشبكة لأنه لن يكون قادر على جلب appstoreid تلقائيا باستخدام خدمات iTunes.
@property (nonatomic, assign) NSUInteger appStoreGenreID;
هذا هو نوع التطبيق ، المستخدم لتحديد النص الافتراضي لحوار التصنيف. يتم تعيين هذا تلقائيًا عن طريق الاتصال بخدمة iTunes ، لذلك يجب ألا تحتاج إلى ضبطها يدويًا لمعظم الأغراض. إذا كنت ترغب في تجاوز هذه القيمة ، فإن ضبطها على ثابت iRateAppStoreGameGenreID
سيؤدي إلى استخدام إصدار "اللعبة" في مربع الحوار ، وسيستخدم تعيينه على أي قيمة أخرى إصدار "التطبيق" من مربع الحوار التقييم.
@property (nonatomic, copy) NSString *appStoreCountry;
هذا هو رمز البلد المكون من حرفيين يستخدم لتحديد متجر iTunes للتحقق. يتم تعيينه تلقائيًا من تفضيلات لغة الجهاز ، لذلك لا يجب تغييرها في معظم الحالات. يمكنك تجاوز هذا الأمر للإشارة إلى المتجر الأمريكي ، أو متجر آخر محدد إذا كنت تفضل ذلك ، والتي قد تكون فكرة جيدة إذا كان تطبيقك متاحًا فقط في بعض البلدان.
@property (nonatomic, copy) NSString *applicationName;
هذا هو اسم التطبيق المعروض في التنبيه الغاضب. يتم تعيينه تلقائيًا من معلومات التطبيق.
@property (nonatomic, copy) NSString *applicationBundleID;
هذا هو معرف حزمة التطبيق ، المستخدم لاسترداد appStoreID
و appStoreGenreID
من iTunes. يتم تعيين هذا تلقائيًا من معلومات التطبيق.
@property (nonatomic, assign) float daysUntilPrompt;
هذا هو عدد الأيام التي يجب أن يكون لدى المستخدم تطبيق التطبيق قبل مطالبته بتقييمه. يتم قياس الوقت من المرة الأولى التي يتم فيها إطلاق التطبيق. هذه قيمة نقطة عائمة ، بحيث يمكن استخدامها لتحديد عدد كسور من الأيام (على سبيل المثال 0.5). القيمة الافتراضية هي 10 أيام.
@property (nonatomic, assign) NSUInteger usesUntilPrompt;
هذا هو الحد الأدنى لعدد المرات التي يجب على المستخدم تشغيلها التطبيق قبل مطالبته بتقييمه. هذا يتجنب السيناريو الذي يقوم فيه المستخدم بتشغيل التطبيق مرة واحدة ، ولا ينظر إليه لأسابيع ثم يطلقه مرة أخرى ، ليتم مطالبته على الفور بتقييمه. يضمن الحد الأدنى لعدد الاستخدام أن المستخدمين المتكررين يتم مطالبهم فقط. لن يظهر المطالبة إلا بعد عدد الأيام المحددة والاستخدامات. هذا الافتراضات إلى 10 استخدامات.
@property (nonatomic, assign) NSUInteger eventsUntilPrompt;
بالنسبة لبعض التطبيقات ، فإن عمليات الإطلاق ليست مقياسًا جيدًا للاستخدام. على سبيل المثال ، قد يكون التطبيق خفيًا يتم تشغيله باستمرار ، أو لعبة حيث لا يستطيع المستخدم كتابة مراجعة مستنيرة حتى يصل إلى مستوى معين. في هذه الحالة ، يمكنك تسجيل الأحداث المهمة يدويًا وظهر للمطالبة بعد عدد محدد مسبقًا من هذه الأحداث. مثل إعداد useftuntilprompt ، لن تظهر المطالبة إلا بعد عدد الأيام والأحداث المحددة ، ولكن بمجرد الوصول إلى عتبة النهار ، ستظهر المطالبة إذا تم الوصول إلى عتبة الحدث أو عتبة الاستخدام. هذا الافتراضات إلى 10 أحداث.
@property (nonatomic, assign) float usesPerWeekForPrompt;
إذا كنت أقل قلقًا مع إجمالي عدد المرات التي يتم فيها استخدام التطبيق ، ولكنك تفضل استخدام تواتر الأوقات التي يتم فيها استخدام التطبيق ، يمكنك استخدام خاصية usesPerWeekForPrompt
لتعيين حد أدنى لعدد المرات التي يجب على المستخدم تشغيلها التطبيق في الأسبوع (في المتوسط) لعرض المطالبة. لاحظ أن هذا هو المتوسط منذ تثبيت التطبيق ، لذلك إذا ذهب المستخدم لفترة طويلة دون تشغيل التطبيق ، فقد يتخلص من المتوسط. القيمة الافتراضية هي صفر.
@property (nonatomic, assign) float remindPeriod;
كم من الوقت يجب أن ينتظر التطبيق قبل تذكير المستخدم بالتقييم بعد اختيار خيار "ذكري لاحقًا" (تم قياسه في أيام). تعني قيمة الصفر أن التطبيق سيذكر المستخدم بعد إطلاقه. لاحظ أن هذه القيمة تحل محل المعايير الأخرى ، وبالتالي فإن التطبيق لن يطالب بتصنيف خلال فترة التذكير ، حتى إذا تم إصدار إصدار جديد في هذه الأثناء. هذا الافتراضات إلى يوم واحد.
@property (nonatomic, copy) NSString *messageTitle;
العنوان المعروض لمطالبة التقييم. إذا كنت لا ترغب في عرض عنوان ، فقم بتعيين هذا على @""
؛
@property (nonatomic, copy) NSString *message;
رسالة موجه التقييم. يجب أن يكون هذا مهذبًا ومهذبًا ، ولكن ليس من الكلام. إذا كنت لا ترغب في عرض رسالة ، فقم بتعيين هذا على @""
؛
@property (nonatomic, copy) NSString *updateMessage;
هذه رسالة يتم استخدامها للمستخدمين الذين قاموا بتقييم التطبيق مسبقًا ، وشجعهم على إعادة معدل. يتيح لك ذلك تخصيص الرسالة لهؤلاء المستخدمين. إذا لم تقم بتوفير رسالة مخصصة لهذه الحالة ، فسيتم استخدام الرسالة القياسية.
@property (nonatomic, copy) NSString *cancelButtonLabel;
تسمية الزر للزر لرفض موجه التصنيف دون تصنيف التطبيق.
@property (nonatomic, copy) NSString *rateButtonLabel;
تسمية الزر للزر الذي يضغط عليه المستخدم إذا كان يرغب في تقييم التطبيق.
@property (nonatomic, copy) NSString *remindButtonLabel;
تسمية الزر للزر الذي يضغط عليه المستخدم إذا لم يرغب في تقييم التطبيق على الفور ، ولكن لا يريد تذكيره في المستقبل. اضبط هذا على @""
إذا كنت لا ترغب في عرض زر ذكريني - على سبيل المثال ، إذا لم يكن لديك مساحة على الشاشة.
@property (nonatomic, assign) BOOL useAllAvailableLanguages;
بشكل افتراضي ، ستستخدم Irate جميع اللغات المتاحة في الغضب. إذا كنت تفضل تقييد الغضب فقط لاستخدام نفس مجموعة اللغات التي يدعمها تطبيقك بالفعل ، فقم بتعيين هذه الخاصية على لا. (الافتراضيات إلى نعم).
@property (nonatomic, assign) BOOL promptForNewVersionIfUserRated;
نظرًا لأن تصنيفات iTunes خاصة بالإصدار ، فأنت تريد من المستخدمين أن يقوموا بتقييم كل إصدار جديد من تطبيقك. قد يكون المستخدمون الذين يحبون تطبيقك على استعداد لتحديث مراجعتهم للإصدارات الجديدة. قم بتعيين promptForNewVersionIfUserRated
على YES
، وسيؤدي الغضب إلى دفع المستخدم مرة أخرى في كل مرة يقومون فيها بتثبيت تحديث حتى يرفضوا تقييم التطبيق. إذا تراجعت ، فلن يُطلب منهم مرة أخرى.
@property (nonatomic, assign) BOOL onlyPromptIfLatestVersion;
قم بتعيين هذا إلى NO لتمكين مطالبة التقييم التي سيتم عرضها حتى لو لم يكن المستخدم يقوم بتشغيل أحدث إصدار من التطبيق. هذا الإعدادات الافتراضية إلى نعم لأن المستخدمين بهذه الطريقة لن يترك المستخدمون مراجعات سيئة بسبب الأخطاء التي قمت بإصلاحها بالفعل ، إلخ.
@property (nonatomic, assign) BOOL onlyPromptIfMainWindowIsAvailable;
هذا الإعداد ينطبق على نظام التشغيل Mac OS فقط. بشكل افتراضي ، يتم عرض التنبيه الغاضب على Mac OS كورقة على النافذة الرئيسية. بعض التطبيقات لا تحتوي على نافذة رئيسية ، لذلك لا يعمل هذا النهج. بالنسبة لمثل هذه التطبيقات ، اضبط هذه الخاصية على لا للسماح بعرض التنبيه الغاضب كنافذة مشروطة عادية.
@property (nonatomic, assign) BOOL promptAtLaunch;
قم بتعيين هذا إلى عدم تعطيل مطالبة التقييم التي تظهر تلقائيًا عند تشغيل التطبيق أو يعود من الخلفية. ستستمر تتبع معايير التقييم ، ولكن لن يتم عرض المطالبة تلقائيًا بينما يكون هذا الإعداد ساري المفعول. يمكنك استخدام هذا الخيار إذا كنت ترغب في التحكم يدويًا في عرض موجه التقييم.
@property (nonatomic, assign) BOOL verboseLogging;
سيؤدي هذا الخيار إلى إزعاج إرسال سجلات مفصلة إلى وحدة التحكم حول عملية اتخاذ القرار المطالبة. إذا لم يكن تطبيقك يطالب بشكل صحيح بتصنيف عندما تتوقع ذلك ، فسيساعدك ذلك على معرفة السبب. يتم تمكين تسجيل المساحات بشكل افتراضي على تصميمات التصحيح ، وتعطيلها على بنيات الإصدار والنشر.
@property (nonatomic, assign) BOOL previewMode;
إذا تم تعيينه على نعم ، فسيقوم Irate دائمًا بعرض موجه التقييم عند الإطلاق ، بغض النظر عن المدة التي يتم فيها استخدام التطبيق أو ما إذا كان أحدث إصدار (ما لم تكن قد قمت بتعطيل خيار promptAtLaunch
بشكل صريح). استخدم هذا لتصحيح رسالتك والتحقق من أن التكوين الخاص بك صحيح أثناء الاختبار ، ولكن قم بتعطيلها للإصدار النهائي (الافتراضيات إلى لا).
@property (nonatomic, assign) BOOL useUIAlertControllerIfAvailable;
بشكل افتراضي ، ستستخدم Irate UialertView على iOS لعرض موجه التقييم. تم إهمال UialertView في iOS8 واستبدله UialertController. لسوء الحظ ، على عكس uialertview ، يتداخل تقديم تنبيه باستخدام UialertController مع قدرة التطبيق على عرض وحدات تحكم أخرى ، وبما أن الغضب يمكن أن يعرض نظريًا تنبيهًا في أي وقت أثناء عمر التطبيق ، فقد يصطدم بمحاولة تقديم تطبيق آخر عرض مراقب عرض آخر . لهذا السبب ، يتم تعطيل استخدام UialertController افتراضيًا. يجب عليك فقط تعيين هذه الخاصية على نعم إذا كنت على يقين من أنها لن تصطدم بمنطق التطبيق الخاص بك (على سبيل المثال ، إذا كنت قد قمت بتعطيل مطالبات التصنيف التلقائي ، أو إذا لم يستخدم تطبيقك أي وحدات تحكم عرض مشروط).
@property (nonatomic, assign) BOOL useSKStoreReviewControllerIfAvailable;
افتراضيًا ، ستستخدم Irate SkStorereReviewController لطلب مراجعات على iOS 10.3 وما فوق. لتعطيل هذا ، set useSKStoreReviewControllerIfAvailable
to NO
.
إذا كان السلوك الغريب الافتراضي لا يفي بمتطلباتك ، فيمكنك تنفيذ خاصتك باستخدام الخصائص المتقدمة والأساليب والفوض. تتيح لك الخصائص أدناه الوصول إلى الحالة الداخلية وتجاوزها:
@property (nonatomic, strong) NSURL *ratingsURL;
عنوان URL الذي سيقوم التطبيق بتوجيه المستخدم حتى يتمكنوا من كتابة تصنيف للتطبيق. يتم تعيين هذا على القيمة الصحيحة للمنصة المحددة تلقائيًا. على iOS 6 وتحت ذلك ، ينقل هذا المستخدمين مباشرة إلى صفحة التصنيف ، ولكن على iOS 7 و MAC OS ، يأخذ المستخدمون إلى صفحة التطبيق الرئيسية (إذا كانت هناك طريقة للربط المباشر إلى صفحة التصنيف على تلك المنصات ، فقد قمت حتى الآن للعثور عليه). إذا كنت تقوم بتنفيذ موجه التقييم الخاص بك ، فيجب عليك على الأرجح استخدام طريقة openRatingsPageInAppStore
بدلاً من ذلك ، خاصةً على نظام التشغيل Mac OS ، حيث أن عملية فتح متجر تطبيقات MAC أكثر تعقيدًا من مجرد فتح عنوان URL.
@property (nonatomic, strong) NSDate *firstUsed;
التاريخ الأول الذي أطلق فيه المستخدم الإصدار الحالي من التطبيق. يستخدم هذا لحساب ما إذا كان قد تم استيفاء معيار DaySuntilPrompt.
@property (nonatomic, strong) NSDate *lastReminded;
التاريخ الذي طلب فيه المستخدم آخر مرة لتذكيره بتقييم التطبيق لاحقًا.
@property (nonatomic, assign) NSUInteger usesCount;
عدد مرات استخدام الإصدار الحالي من التطبيق (تم إطلاقه).
@property (nonatomic, assign) NSUInteger eventCount;
عدد أحداث التطبيق المهمة التي تم تسجيلها منذ تثبيت الإصدار الحالي. يتم زيادة هذا بواسطة طريقة logevent ، ولكن يمكن معالجتها مباشرة. تحقق من عرض الأحداث لمعرفة كيفية استخدام هذا نظام التشغيل.
@property (nonatomic, readonly) float usesPerWeek;
متوسط عدد المرات في الأسبوع التي تم فيها استخدام الإصدار الحالي من التطبيق (تم إطلاقه).
@property (nonatomic, assign) BOOL declinedThisVersion;
تشير هذه العلامة إلى ما إذا كان المستخدم قد رفض تقييم الإصدار الحالي (نعم) أم لا (لا). لا يتم استخدام هذا حاليًا من قبل المنطق الغاضب ، ولكنه قد يكون مفيدًا لتنفيذ المنطق الخاص بك.
@property (nonatomic, assign) BOOL declinedAnyVersion;
تشير هذه العلامة إلى ما إذا كان المستخدم قد رفض تقييم أي إصدار سابق من التطبيق (نعم) أم لا (لا). لن يطالب Irate المستخدم تلقائيًا إذا تم تعيين هذا على نعم.
@property (nonatomic, assign) BOOL ratedThisVersion;
تشير هذه العلامة إلى ما إذا كان المستخدم قد قام بالفعل بتصنيف الإصدار الحالي (نعم) أم لا (لا).
@property (nonatomic, readonly) BOOL ratedAnyVersion;
تشير هذه العلامة (ReadOnly) إلى ما إذا كان المستخدم قد قام سابقًا بتصنيف أي إصدار من التطبيق (نعم) أم لا (لا).
@property (nonatomic, assign) id<iRateDelegate> delegate;
كائن قمت بتزويده بتنفيذ بروتوكول iRateDelegate
، الموثق أدناه. استخدم هذا لاكتشاف و/أو تجاوز سلوك Irate الافتراضي. هذا الإعدادات الافتراضية لمندوب التطبيق ، لذلك إذا كنت تستخدم مندوب التطبيق الخاص بك كمندوب غاضب ، فلن تحتاج إلى تعيين هذه الخاصية.
إلى جانب التكوين ، Irate لديه الطرق التالية:
- (BOOL)shouldPromptForRating;
إرجاع نعم إذا تم استيفاء المعايير السريعة ، ولا إذا لم تكن كذلك. يمكنك استخدام هذا لتحديد وقت عرض موجه تصنيف إذا قمت بتعطيل العرض التلقائي عند تشغيل التطبيق. لن يستدعي استدعاء هذه الطريقة طريقة iRateShouldPromptForRating
Pelegate.
- (void)promptForRating;
ستؤدي هذه الطريقة على الفور إلى حدوث مطالبة التقييم دون التحقق من توفر متجر التطبيقات ، ودون الاتصال بالطريقة المندوبة في IratshouldPrompromptforting. لاحظ أن هذه الطريقة تعتمد على خصائص appStoreID
و applicationGenre
، والتي يتم استردادها فقط بعد استقصاء خادم iTunes ، لذلك إذا كنت تنوي استدعاء هذه الطريقة مباشرة ، فستحتاج إلى تعيين هذه الخصائص بنفسك مسبقًا ، أو استخدام طريقة promptIfNetworkAvailable
بدلاً من ذلك.
- (void)promptIfNetworkAvailable;
ستتحقق هذه الطريقة ما إذا كان متجر التطبيق متاحًا ، وإذا كان كذلك ، فسيقوم بإعداد موجه التقييم للمستخدم. سيتم استدعاء طريقة Iratshouldpromprompromprating Plegate قبل عرض التنبيه ، حتى تتمكن من اعتراضه. لاحظ أنه إذا كان التطبيق الخاص بك عبارة عن Sandboxed ولم يكن لديه إذن وصول الشبكة ، فستتجاهل هذه الطريقة حالة توافر الشبكة ، ولكن في هذه الحالة ، ستحتاج إلى تعيين appStoreID
أو الغريبة يدويًا.
- (void)promptIfAllCriteriaMet;
ستتحقق هذه الطريقة ما إذا كانت جميع معايير المطالبة قد تم استيفاءها ، وإذا كان متجر التطبيقات متاحًا ، وإذا كان كذلك ، فسيتم عرض موجه التقييم للمستخدم. سيتم استدعاء طريقة Iratshouldpromprompromprating Plegate قبل عرض التنبيه ، حتى تتمكن من اعتراضه.
- (void)openRatingsPageInAppStore;
تتخطى هذه الطريقة تنبيه المستخدم ويفتح صفحة تصنيفات التطبيق في متجر تطبيقات Mac أو iPhone ، اعتمادًا على النظام الأساسي الذي يتم تشغيله. لا تقوم هذه الطريقة بأي شيكات للتحقق من أن الجهاز لديه وصول للشبكة أو أن متجر التطبيقات متاح. كما أنه لا يطلق على طريقة مفوضية -iRateShouldOpenAppStore
. يجب عليك استخدام هذه الطريقة لفتح صفحة التصنيف بدلاً من خاصية ContingSurl ، لأن عملية إطلاق متجر التطبيقات أكثر تعقيدًا من مجرد فتح عنوان URL في كثير من الحالات. لاحظ أن هذه الطريقة تعتمد على appStoreID
التي يتم استردادها فقط بعد استقصاء خادم iTunes. إذا قمت بالاتصال بهذه الطريقة دون إجراء فحص تحديث أولاً ، فستحتاج إما إلى تعيين خاصية appStoreID
بنفسك مسبقًا ، أو المخاطرة بأن الطريقة قد تستغرق بعض الوقت لإجراء مكالمة شبكة ، أو الفشل تمامًا. عند النجاح ، ستسمي هذه الطريقة طريقة تفويض -iRateDidOpenAppStore
. عند الفشل ، سوف يسمي -iRateCouldNotConnectToAppStore:
طريقة مندوب.
- (void)logEvent:(BOOL)deferPrompt;
يمكن استدعاء هذه الطريقة من أي مكان في التطبيق الخاص بك (بعد تكوين الغضب) وزيادة عدد الأحداث المهمة الغاضبة. عند الوصول إلى العدد المحدد مسبقًا من الأحداث ، سيتم عرض موجه التصنيف. يتم استخدام المعلمة المؤجلة الاختيارية لتحديد ما إذا كان سيتم عرض المطالبة على الفور (لا) أو ما إذا كان التطبيق سينتظر حتى الإطلاق التالي (نعم).
- (void)remindLater;
هذه الطريقة يعيد ضبط فترة التذكير.
يوفر بروتوكول Iratedlegate الطرق التالية التي يمكن استخدامها للأحداث التقاطع وتجاوز السلوك الافتراضي. جميع الطرق اختيارية.
- (void)iRateCouldNotConnectToAppStore:(NSError *)error;
تسمى هذه الطريقة إذا لم تتمكن الغريبة من الاتصال بمتجر التطبيقات ، وعادةً ما يكون اتصال الشبكة منخفضًا. قد يتم إطلاق هذا أيضًا إذا لم يتمكن تطبيقك من الوصول إلى الشبكة بسبب أذونات صندوق الرمل ، وفي هذه الحالة ستحتاج إلى تعيين AppStoreId يدويًا بحيث لا يزال بإمكان الغضب العمل.
- (void)iRateDidDetectAppUpdate;
تسمى هذه الطريقة إذا اكتشف Irate أنه تم تحديث التطبيق منذ آخر مرة تم إطلاقها.
- (BOOL)iRateShouldPromptForRating;
يتم استدعاء هذه الطريقة مباشرة قبل عرض موجه التقييم للمستخدم. يمكنك استخدام هذه الطريقة لتنفيذ منطق موجه مخصص بالإضافة إلى القواعد القياسية. يمكنك أيضًا استخدام هذه الطريقة لحظر تنبيه المطالبة القياسية وعرض موجه التصنيف بطريقة مختلفة ، أو تجاوزها تمامًا.
- (void)iRateDidPromptForRating;
يتم استدعاء هذه الطريقة مباشرة قبل عرض موجه التقييم. يعد هذا مفيدًا إذا كنت تستخدم Analytics لتتبع النسبة المئوية للمستخدمين الذين يرون المطالبة ثم انتقل إلى متجر التطبيقات. يمكن أن يساعدك هذا في ضبط الظروف حول متى/كيف تُظهر المطالبة.
- (void)iRateUserDidAttemptToRateApp;
وهذا ما يسمى عندما يضغط المستخدم على زر المعدل في موجه التقييم. هذا مفيد إذا كنت ترغب في تسجيل تفاعل المستخدم مع Irate. لا يتم استدعاء هذه الطريقة إلا إذا كنت تستخدم موجه عرض تنبيه Irate القياسي ولن يتم استدعاؤه تلقائيًا إذا قمت بتقديم تطبيق تصنيف مخصص أو استدعاء طريقة openRatingsPageInAppStore
مباشرة.
- (void)iRateUserDidDeclineToRateApp;
وهذا ما يسمى عندما يرفض المستخدم تقييم التطبيق. هذا مفيد إذا كنت ترغب في تسجيل تفاعل المستخدم مع Irate. لا تسمى هذه الطريقة إلا إذا كنت تستخدم موجه عرض تنبيه الغريبة القياسي ولن يتم استدعاؤه تلقائيًا إذا قمت بتقديم تطبيق تصنيف مخصص.
- (void)iRateUserDidRequestReminderToRateApp;
وهذا ما يسمى عندما يطلب المستخدم أن يتم تذكيره بتقييم التطبيق. هذا مفيد إذا كنت ترغب في تسجيل تفاعل المستخدم مع Irate. لا تسمى هذه الطريقة إلا إذا كنت تستخدم موجه عرض تنبيه الغريبة القياسي ولن يتم استدعاؤه تلقائيًا إذا قمت بتقديم تطبيق تصنيف مخصص.
- (BOOL)iRateShouldOpenAppStore;
يتم استدعاء هذه الطريقة مباشرة قبل محاولات Irate لفتح متجر التطبيقات. ارجع لا إذا كنت ترغب في تنفيذ منطق عرض صفحة التصنيف الخاصة بك.
- (void)iRateDidOpenAppStore;
تسمى هذه الطريقة مباشرة بعد أن تفتح Irate متجر التطبيقات.
يتم بالفعل ترجمة السلاسل الافتراضية لـ Irate للعديد من اللغات. بشكل افتراضي ، ستستخدم Irate جميع المواقع الموضعية في الغضب. مفاتيح الأوتار الغاضبة هي:
static NSString *const iRateMessageTitleKey = @"iRateMessageTitle";
static NSString *const iRateAppMessageKey = @"iRateAppMessage";
static NSString *const iRateGameMessageKey = @"iRateGameMessage";
static NSString *const iRateUpdateMessageKey = @"iRateUpdateMessage";
static NSString *const iRateCancelButtonKey = @"iRateCancelButton";
static NSString *const iRateRemindButtonKey = @"iRateRemindButton";
static NSString *const iRateRateButtonKey = @"iRateRateButton";
إذا كنت تفضل الغاضبة لاستخدام المواقع الموضعية التي يتم تمكينها فقط في طلبك (بحيث إذا كان تطبيقك يدعم فقط اللغة الإنجليزية والفرنسية والإسبانية ، فسيتم تلقائيًا تلقائيًا لتلك اللغات ، ولكن ليس للألمانية ، على الرغم من أن الغضب يشمل الألمانية ملف اللغة) ، قم بتعيين خيار useAllAvailableLanguages
إلى لا.
لا ينصح بتعديل ملفات الأوتار في الغضب. الاستثناء من ذلك هو إذا كنت ترغب في تقديم لغات أو تحسينات إضافية أو تصحيحات على المواقع في المشروع الغاضب على Github (والتي يتم تقديرها إلى حد كبير).
إذا كنت ترغب في إضافة لغة إضافية للإغراء في تطبيقك دون إرسالها إلى مشروع GitHub ، فيمكنك إضافة هذه الأوتار مباشرة إلى ملف string.strings المناسب في مجلد المشروع. إذا كنت ترغب في استبدال بعض أو كل الأوتار الافتراضية ، فإن أبسط الخيار هو نسخ تلك الأوتار فقط إلى ملف tollize.strings الخاص بك ثم تعديلها. سوف تستخدم الغضب تلقائيًا السلاسل في حزمة التطبيق الرئيسية في تفضيلها إلى تلك الموجودة في الحزمة الغاضبة حتى تتمكن من تجاوز أي سلسلة بهذه الطريقة.
إذا كنت لا ترغب في استخدام أي من المواقع الافتراضية ، فيمكنك حذف الغضب. لاحظ أنه إذا كنت ترغب فقط في دعم مجموعة فرعية من اللغات التي تدعمها الغريبة ، فليس من الضروري حذف ملفات السلاسل الأخرى من Irate.bundle - فقط قم بتعيين useAllAvailableLanguages
إلى لا ، وسيستخدم الغضب فقط اللغات التي يدعمها تطبيقك بالفعل.
لا تزال الطريقة القديمة للتغلب على الأوتار الافتراضية لـ Irate باستخدام أساليب Setter الفردية (انظر أدناه) مدعومة ، ومع ذلك ، فإن النهج الموصى به هو إضافة تلك الأوتار إلى ملف Tollizing.Strings لمشروعك ، والذي سيتم اكتشافه تلقائيًا عن طريق الغريبة.
+ (void)initialize
{
//overriding the default iRate strings
[iRate sharedInstance].messageTitle = NSLocalizedString(@"Rate MyApp", @"iRate message title");
[iRate sharedInstance].message = NSLocalizedString(@"If you like MyApp, please take the time, etc", @"iRate message");
[iRate sharedInstance].cancelButtonLabel = NSLocalizedString(@"No, Thanks", @"iRate decline button");
[iRate sharedInstance].remindButtonLabel = NSLocalizedString(@"Remind Me Later", @"iRate remind button");
[iRate sharedInstance].rateButtonLabel = NSLocalizedString(@"Rate It Now", @"iRate accept button");
}
عندما تقوم بإنشاء وتشغيل مشروع Mac أو iPhone الأساسي لأول مرة ، سيظهر تنبيهًا يطلب منك تقييم التطبيق. هذا لأنه تم تعيين خيار المعاينة.
قم بتعطيل خيار المعاينة واللعب مع الإعدادات الأخرى لمعرفة كيف يتصرف التطبيق في الممارسة العملية.
يوضح المثال المتقدم كيف يمكنك تنفيذ واجهة IRATE مخصصة تمامًا باستخدام أساليب IratedElegate. يتم تعطيل المطالبة التلقائية وبدلاً من ذلك يمكن للمستخدم اختيار تقييم التطبيق عن طريق الضغط على زر "معدل هذا التطبيق".
عند الضغط عليه ، يتحقق التطبيق أولاً من أن متجر التطبيقات متاح (قد لا يكون ذلك إذا لم يكن لدى الكمبيوتر أي اتصال بالإنترنت أو Apple.com) ، ثم يقوم بتشغيل متجر تطبيقات Mac.
مثال على Mac OS ، ولكن يمكن تطبيق نفس المبدأ على iOS.
الإصدار 1.12.2
الإصدار 1.12.1
الإصدار 1.12
الإصدار 1.11.7
الإصدار 1.11.6
الإصدار 1.11.5
الإصدار 1.11.4
canOpenURL:
الإصدار 1.11.3
الإصدار 1.11.2
الإصدار 1.11.1
الإصدار 1.11
promptIfCriteriaMet
طريقة الراحة المذهلةNSNotificationCenter
كبديل للتفويضUIAlertController
بدلاً من UIAlertView
إذا كان ذلك متاحًاالإصدار 1.10.3
الإصدار 1.10.2
الإصدار 1.10.1
الإصدار 1.10
daysUntilPrompt
الكاملة بعد تحديث التطبيقpromptForNewVersionIfUserRated
لإعادة تحريك المستخدمين الذين تم تصنيفهم السابق (بشكل افتراضي)updateMessage
للاستخدام مع خيار promptForNewVersionIfUserRated
الإصدار 1.9.3
الإصدار 1.9.2
الإصدار 1.9.1
الإصدار 1.9
promptAgainEachVersion
الإصدار 1.8.3
الإصدار 1.8.2
الإصدار 1.8.1
الإصدار 1.8
الإصدار 1.7.5
الإصدار 1.7.4
الإصدار 1.7.3
الإصدار 1.7.2
الإصدار 1.7.1
الإصدار 1.7
الإصدار 1.6.2
الإصدار 1.6.1
الإصدار 1.6
الإصدار 1.5.3
الإصدار 1.5.2
الإصدار 1.5.1
الإصدار 1.5
الإصدار 1.4.9
الإصدار 1.4.8
الإصدار 1.4.7
الإصدار 1.4.6
الإصدار 1.4.5
الإصدار 1.4.4
الإصدار 1.4.3
الإصدار 1.4.2
الإصدار 1.4.1
الإصدار 1.4
الإصدار 1.3.5
الإصدار 1.3.4
iRateDidDetectAppUpdate
الإصدار 1.3.3
الإصدار 1.3.2
الإصدار 1.3.1
الإصدار 1.3
الإصدار 1.2.3
الإصدار 1.2.2
الإصدار 1.2.1
MAC_APP_STORE_REFRESH_DELAY
to 5 seconds to support older machinesالإصدار 1.2
الإصدار 1.1
الإصدار 1.0