Es wird keine zukünftigen Updates oder Fehlerbehebungen erhalten. Wenn Sie es verwenden, migrieren Sie bitte zu einer anderen Lösung.
IRATE ist eine Bibliothek, in der Sie Ihre iPhone- und Mac App Store -Apps bewerben können, indem Sie die Benutzer dazu veranlassen, die App zu bewerten, nachdem Sie sie einige Tage lang verwendet haben. Dieser Ansatz ist eine der besten Möglichkeiten, um positive App -Bewertungen zu erhalten, indem sie nur reguläre Benutzer abzielen (die vermutlich die App mögen oder sie nicht weiter verwenden würden!).
Hinweis: 'unterstützt' bedeutet, dass die Bibliothek mit dieser Version getestet wurde. 'Kompatibel' bedeutet, dass die Bibliothek in dieser Betriebssystemversion funktionieren sollte (dh sie stützt sich nicht auf nicht verfügbaren SDK -Funktionen), wird jedoch nicht mehr auf Kompatibilität getestet und erfordert möglicherweise eine Optimierung oder Fehlerbehebungen, um korrekt auszuführen.
Ab Version 1.7 benötigt IRATE ARC. Wenn Sie IRate in einem Nicht-ARC-Projekt verwenden möchten, fügen Sie einfach die Flag-FOBJC-ARC-Compiler-Flag in der IRate.M-Klasse hinzu. Gehen Sie dazu in Ihre Zieleinstellungen auf die Registerkarte "Build Phasen", öffnen Sie die Kompilierquellengruppe, doppelklicken Sie in der Liste in der Liste.
Wenn Sie Ihr gesamtes Projekt in ARC konvertieren möchten, kommentieren Sie die #Error-Linie in iRate.m und führen Sie den Bearbeiten> Refactor> zum Objective-C-Bogen aus ... Tool in Xcode aus und stellen Sie sicher Verwenden Sie ARC für (einschließlich IRate.m) werden überprüft.
IRATE verwendet das interne Threading, um das Blockieren der Benutzeroberfläche zu vermeiden, aber keine der wütenden externen Schnittstellen ist Faden sicher und Sie sollten keine Methoden aufrufen oder Eigenschaften auf IRATE einstellen, außer vom Hauptfaden.
Um IRATE in Ihre App zu installieren, ziehen Sie die Dateien von IRate.H, .m und .Bundle in Ihr Projekt. Sie können die .bundle weglassen, wenn Sie sich nicht für lokalisierten Text interessieren.
IRATE benötigt in der Regel überhaupt keine Konfiguration und wird einfach automatisch ausgeführt, wobei die Bundle -ID der Anwendung verwendet wird, um die App -ID im App Store zu suchen.
Hinweis: Wenn Sie Apps mit passenden Bundle -IDs sowohl im Mac- als auch im iOS -App -Stores haben (auch wenn sie eine andere Kapitalisierung verwenden), funktioniert der Suchmechanismus nicht, sodass Sie die AppStoreid -Eigenschaft manuell einstellen müssen, was ein ist Numerische ID, die in iTunes Connect gefunden werden kann, nachdem Sie eine App eingerichtet haben. Wenn Sie eine Sandbox -Mac -App erstellen und Ihre App die Network Access -Berechtigung nicht anfordert, müssen Sie die AppStoreid festlegen, da sie nicht aus dem iTunes -Dienst abgerufen werden kann.
Wenn Sie IRATE anpassen möchten, ist die beste Zeit in der Methode Ihres AppDelegate -[application:didFinishLaunchingWithOptions:]
Methode. Das Anwenden der Konfiguration wird später möglicherweise nicht funktioniert, da die Eingabeaufforderung möglicherweise bereits zu diesem Zeitpunkt angezeigt wurde:
#import "iRate.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//configure iRate
[iRate sharedInstance].daysUntilPrompt = 5;
[iRate sharedInstance].usesUntilPrompt = 15;
return YES;
}
Um IRate zu konfigurieren, gibt es eine Reihe von Eigenschaften der IRate -Klasse, die das Verhalten und das Erscheinungsbild von IRate verändern können. Diese sollten größtenteils selbst erklärend sein, sind jedoch unten dokumentiert:
@property (nonatomic, assign) NSUInteger appStoreID;
Dies sollte mit der iTunes -App -ID Ihrer Anwendung übereinstimmen, die Sie nach dem Einrichten Ihrer App von iTunes Connect erhalten können. Dieser Wert ist normalerweise nicht erforderlich und ist im Allgemeinen nur erforderlich, wenn Sie den oben genannten Konflikt zwischen Bundle -IDs für Ihre Mac- und iOS In der Lage, die AppStoreid automatisch mit iTunes -Diensten abzurufen.
@property (nonatomic, assign) NSUInteger appStoreGenreID;
Dies ist die Art der App, mit der der Standardtext für das Bewertungsdialog ermittelt wird. Dies wird automatisch eingestellt, indem Sie einen iTunes -Dienst aufrufen, sodass Sie ihn für die meisten Zwecke nicht manuell festlegen müssen. Wenn Sie diesen Wert überschreiben möchten, führt sich IRATE auf die "Spiel" -Version des Bewertungsdialogfelds iRateAppStoreGameGenreID
auf die" App "-Version des Bewertungsdialogfelds.
@property (nonatomic, copy) NSString *appStoreCountry;
Dies ist der Zwei-Buchstaben-Ländercode, mit dem angegeben wird, welcher iTunes Store zu überprüfen ist. Es wird automatisch aus den Einstellungen des Gerätegebietsschemas festgelegt und sollte in den meisten Fällen nicht geändert werden. Sie können dies überschreiben, um auf den US -amerikanischen Geschäft oder einen anderen speziellen Geschäft zu verweisen, wenn Sie es vorziehen. Dies ist möglicherweise eine gute Idee, wenn Ihre App nur in bestimmten Ländern verfügbar ist.
@property (nonatomic, copy) NSString *applicationName;
Dies ist der Name der App, die in der IRATE -Warnung angezeigt wird. Es wird automatisch aus der Info.plist der Anwendung festgelegt. Möglicherweise möchten Sie sie jedoch mit einer kürzeren oder längeren Version überschreiben.
@property (nonatomic, copy) NSString *applicationBundleID;
Dies ist die Anwendungsbündel -ID, mit der appStoreID
und appStoreGenreID
von iTunes abgerufen werden. Dies wird automatisch aus der Info der App festgelegt.
@property (nonatomic, assign) float daysUntilPrompt;
Dies ist die Anzahl der Tage, an denen der Benutzer die App installiert haben muss, bevor sie aufgefordert werden, sie zu bewerten. Die Zeit wird zum ersten Mal gemessen, als die App gestartet wird. Dies ist ein schwimmender Punktwert, daher kann er verwendet werden, um eine fraktionale Anzahl von Tagen anzugeben (z. B. 0,5). Der Standardwert beträgt 10 Tage.
@property (nonatomic, assign) NSUInteger usesUntilPrompt;
Dies ist die mindestens Häufigkeit, mit der der Benutzer die App starten muss, bevor sie aufgefordert werden, sie zu bewerten. Dadurch wird das Szenario vermieden, in dem ein Benutzer die App einmal ausführt, sie wochenlang nicht betrachtet und dann erneut startet, nur um sofort aufgefordert zu werden, sie zu bewerten. Die Anzahl der Mindestnutzung stellt sicher, dass nur häufige Benutzer aufgefordert werden. Die Eingabeaufforderung erscheint erst, nachdem die angegebene Anzahl von Tagen und Verwendungen erreicht wurde. Dies ist standardmäßig 10 Verwendungszwecke.
@property (nonatomic, assign) NSUInteger eventsUntilPrompt;
Für einige Apps sind Starts keine gute Metrik für die Verwendung. Zum Beispiel könnte die App ein Daemon sein, das ständig ausgeführt wird, oder ein Spiel, in dem der Benutzer erst dann eine informierte Bewertung schreiben kann, wenn er ein bestimmtes Level erreicht hat. In diesem Fall können Sie signifikante Ereignisse manuell protokollieren und die Eingabeaufforderung nach einer vorbestimmten Anzahl dieser Ereignisse angezeigt werden. Wie bei der Einstellung von Nutzungserprompt wird die Eingabeaufforderung erst nach der angegebenen Anzahl von Tagen und Ereignissen angezeigt. Sobald der Tagesschwellenwert erreicht ist, wird die Eingabeaufforderung angezeigt, wenn entweder der Ereignisschwellenwert oder die Nutzung der Schwelle erreicht ist. Dies ist standardmäßig 10 Ereignisse.
@property (nonatomic, assign) float usesPerWeekForPrompt;
Wenn Sie weniger mit der Gesamtzahl der Verwendung der App besorgt sind, aber die Häufigkeit usesPerWeekForPrompt
mit der die App verwendet wird Die App pro Woche (im Durchschnitt), damit die Eingabeaufforderung angezeigt wird. Beachten Sie, dass dies der Durchschnitt ist, da die App installiert wurde. Wenn der Benutzer also einen langen Zeitraum ohne Ausführen der App ausführt, kann dies den Durchschnitt abwerfen. Der Standardwert ist Null.
@property (nonatomic, assign) float remindPeriod;
Wie lange die App warten sollte, bevor er einen Benutzer daran erinnert, die Option "Erinnerung mich später erinnern" (gemessen in Tagen). Ein Wert von Null bedeutet, dass die App den Nutzer nächsten Start erinnert. Beachten Sie, dass dieser Wert die anderen Kriterien ersetzt, sodass die App während der Erinnerungszeit nicht nach einer Bewertung auffordert, auch wenn in der Zwischenzeit eine neue Version veröffentlicht wird. Dies ist standardmäßig 1 Tag.
@property (nonatomic, copy) NSString *messageTitle;
Der Titel wurde für die Bewertungsaufforderung angezeigt. Wenn Sie keinen Titel anzeigen möchten, setzen Sie ihn auf @""
;
@property (nonatomic, copy) NSString *message;
Die Bewertungsaufforderung zur Nachricht. Dies sollte höflich und höflich sein, aber nicht zu wortreich. Wenn Sie keine Nachricht anzeigen möchten, setzen Sie diese auf @""
;
@property (nonatomic, copy) NSString *updateMessage;
Dies ist eine Nachricht, die für Benutzer verwendet werden soll, die zuvor die App bewertet haben, um sie zur Wiederbewertung zu ermutigen. Auf diese Weise können Sie die Nachricht für diese Benutzer anpassen. Wenn Sie für diesen Fall keine benutzerdefinierte Nachricht angeben, wird die Standardnachricht verwendet.
@property (nonatomic, copy) NSString *cancelButtonLabel;
Die Schaltfläche für die Schaltfläche, um die Bewertungsaufforderung ohne Bewertung der App abzuweisen.
@property (nonatomic, copy) NSString *rateButtonLabel;
Die Schaltfläche für die Taste, die der Benutzer drückt, wenn er die App bewerten möchte.
@property (nonatomic, copy) NSString *remindButtonLabel;
Die Taste -Beschriftung für die Taste, die der Benutzer drückt, wenn er die App nicht sofort bewerten möchte, möchte aber in Zukunft daran erinnert werden. Stellen Sie dies auf @""
fest, wenn Sie die Schaltfläche Erinnerung nicht anstellen möchten - z. B. wenn Sie keinen Speicherplatz auf dem Bildschirm haben.
@property (nonatomic, assign) BOOL useAllAvailableLanguages;
Standardmäßig wird IRATE alle verfügbaren Sprachen in der IRATE.Bundle verwendet, auch wenn es in einer App verwendet wird, die die Lokalisierung nicht unterstützt. Wenn Sie es vorziehen möchten, IRATE zu beschränken, nur dieselben Sprachen zu verwenden, die Ihre Anwendung bereits unterstützt, setzen Sie diese Eigenschaft auf NO. (Standardmäßig Ja).
@property (nonatomic, assign) BOOL promptForNewVersionIfUserRated;
Da iTunes-Bewertungen versionsspezifisch sind, möchten Sie, dass Benutzer jede neue Version Ihrer App bewerten. Benutzer, die Ihre App wirklich lieben, sind möglicherweise bereit, ihre Bewertung für neue Veröffentlichungen zu aktualisieren. Setzen Sie promptForNewVersionIfUserRated
auf YES
, und IRate fordert den Benutzer jedes Mal erneut auf, wenn er ein Update installiert, bis er ablehnt, um die App zu bewerten. Wenn sie ablehnen, werden sie nicht wieder gefragt.
@property (nonatomic, assign) BOOL onlyPromptIfLatestVersion;
Setzen Sie dies auf Nein, um die Bewertungsaufforderung zu aktivieren, auch wenn der Benutzer die neueste Version der App nicht ausführt. Dies ist standardmäßig mit Ja, da Benutzer aufgrund von Fehler, die Sie bereits behoben haben, keine schlechten Bewertungen hinterlassen.
@property (nonatomic, assign) BOOL onlyPromptIfMainWindowIsAvailable;
Diese Einstellung gilt nur für Mac OS. Standardmäßig wird unter Mac OS der wütende Alarm als Blatt im Hauptfenster angezeigt. Einige Anwendungen haben kein Hauptfenster, daher funktioniert dieser Ansatz nicht. Setzen Sie für solche Anwendungen diese Eigenschaft auf Nein, damit die wütende Warnung als reguläres Modalfenster angezeigt werden kann.
@property (nonatomic, assign) BOOL promptAtLaunch;
Legen Sie dies auf Nein ein, um die Bewertungsaufforderung zu deaktivieren, die automatisch angezeigt wird, wenn die Anwendung aus dem Hintergrund startet oder zurückgibt. Die Bewertungskriterien werden weiterhin verfolgt, die Eingabeaufforderung wird jedoch nicht automatisch angezeigt, während diese Einstellung in Kraft ist. Sie können diese Option verwenden, wenn Sie die Anzeige der Bewertungsaufforderung manuell steuern möchten.
@property (nonatomic, assign) BOOL verboseLogging;
Diese Option veranlasst IRate, detaillierte Protokolle über den schnellen Entscheidungsprozess an die Konsole zu senden. Wenn Ihre App nicht korrekt nach einer Bewertung auffordert, wenn Sie dies erwarten würden, hilft Ihnen dies, herauszufinden, warum. Die ausführliche Protokollierung ist standardmäßig in Debug -Builds aktiviert und bei der Veröffentlichung und Bereitstellung deaktiviert.
@property (nonatomic, assign) BOOL previewMode;
Wenn IRate auf Yes festgelegt wird, zeigt IRATE die Bewertungsaufforderung beim Start immer an, unabhängig davon, wie lange die App verwendet wurde oder ob es sich um die neueste Version handelt (es sei denn, Sie haben die Option promptAtLaunch
explizit deaktiviert). Verwenden Sie dies, um Ihre Nachricht zu ordnen und zu überprüfen, ob Ihre Konfiguration während des Tests korrekt ist. Deaktivieren Sie sie jedoch für die endgültige Version (Standardeinstellungen auf NO).
@property (nonatomic, assign) BOOL useUIAlertControllerIfAvailable;
Standardmäßig verwendet IRate UialertView auf iOS, um die Bewertungsaufforderung anzuzeigen. UialertView wurde in iOS8 veraltet und durch UialertController ersetzt. Im Gegensatz zu UialertView stört die Präsentation einer Warnung mit UialertController die Fähigkeit der App, andere Controller anzuzeigen, und da IRATE theoretisch zu einem beliebigen Punkt während der gesamten Lebensdauer der App theoretisch anzeigen kann . Aus diesem Grund ist die Verwendung von UialertController standardmäßig deaktiviert. Sie sollten diese Eigenschaft nur auf Ja einstellen, wenn Sie sicher sind, dass sie nicht mit Ihrer App -Logik in Konflikt gerät (z. B. wenn Sie automatische Bewertungsanforderungen deaktiviert haben oder wenn Ihre App keine modalen Ansichtscontroller verwendet).
@property (nonatomic, assign) BOOL useSKStoreReviewControllerIfAvailable;
Standardmäßig wird IRATE den SkstorereviewController verwenden, um Bewertungen auf iOS 10.3 und höher anzufordern. Um dies zu deaktivieren, setze set useSKStoreReviewControllerIfAvailable
für NO
.
Wenn das standardmäßige verärgerte Verhalten Ihren Anforderungen nicht entspricht, können Sie Ihre eigenen implementieren, indem Sie die erweiterten Eigenschaften, Methoden und Delegierten verwenden. Mit den folgenden Eigenschaften können Sie auf den internen Zustand zugreifen und diese überschreiben:
@property (nonatomic, strong) NSURL *ratingsURL;
Die URL, die die App den Benutzer anführt, so dass er eine Bewertung für die App schreiben kann. Dies wird automatisch auf den richtigen Wert für die angegebene Plattform eingestellt. Auf iOS 6 und darunter führt Benutzer direkt zur Bewertungsseite, aber auf iOS 7 und Mac OS führt die Benutzer zur Haupt -App es zu finden). Wenn Sie Ihre eigene Bewertungsaufforderung implementieren, sollten Sie stattdessen die openRatingsPageInAppStore
-Methode verwenden, insbesondere bei Mac OS, da der Prozess zum Öffnen des Mac App Store komplexer ist als die bloße Öffnung der URL.
@property (nonatomic, strong) NSDate *firstUsed;
Das erste Datum, an dem der Benutzer die aktuelle Version der App gestartet hat. Dies wird verwendet, um zu berechnen, ob das dagegen -Kriterium erfüllt wurde.
@property (nonatomic, strong) NSDate *lastReminded;
Das Datum, an dem der Benutzer zuletzt aufgefordert wurde, die App später zu bewerten.
@property (nonatomic, assign) NSUInteger usesCount;
Die Häufigkeit, mit der die aktuelle Version der App verwendet wurde (gestartet).
@property (nonatomic, assign) NSUInteger eventCount;
Die Anzahl der wesentlichen Anwendungsereignisse, die seit der Installation der aktuellen Version aufgezeichnet wurden. Dies wird durch die Logevent -Methode erhöht, kann aber auch direkt manipuliert werden. Schauen Sie sich die Ereignis -Demo an, um zu sehen, wie dieses Betriebssystem verwendet wird.
@property (nonatomic, readonly) float usesPerWeek;
Die durchschnittliche Anzahl von Malen pro Woche, in der die aktuelle Version der App verwendet wurde (gestartet).
@property (nonatomic, assign) BOOL declinedThisVersion;
Dieses Flag gibt an, ob der Benutzer die aktuelle Version (ja) oder nicht (nein) abgelehnt hat. Dies wird derzeit nicht von der IRATE -Aufforderung zur Logik verwendet, kann jedoch für die Implementierung Ihrer eigenen Logik nützlich sein.
@property (nonatomic, assign) BOOL declinedAnyVersion;
Dieses Flag gibt an, ob der Benutzer eine frühere Version der App (Ja) oder nicht (nein) abgelehnt hat. IRATE fordert den Benutzer nicht automatisch auf, wenn dies auf Ja gesetzt ist.
@property (nonatomic, assign) BOOL ratedThisVersion;
Dieses Flag gibt an, ob der Benutzer die aktuelle Version (ja) bereits bewertet hat oder nicht (nein).
@property (nonatomic, readonly) BOOL ratedAnyVersion;
Dieses (readonly) Flag gibt an, ob der Benutzer zuvor eine Version der App (ja) oder nicht (nein) bewertet hat.
@property (nonatomic, assign) id<iRateDelegate> delegate;
Ein Objekt, das Sie geliefert haben, das das unten dokumentierte iRateDelegate
Protokoll implementiert. Verwenden Sie dies, um das Standardverhalten von IRate zu erkennen und/oder überschreiben Sie. Diese Standardeinstellung für den App -Delegierten. Wenn Sie also Ihren App -Delegierten als IRATE -Delegierter verwenden, müssen Sie diese Eigenschaft nicht festlegen.
Neben der Konfiguration hat IRATE die folgenden Methoden:
- (BOOL)shouldPromptForRating;
Gibt ja zurück, wenn die sofortigen Kriterien erfüllt wurden, und nein, wenn dies nicht der Fall ist. Sie können diese verwenden, um zu entscheiden, wann eine Bewertungsaufforderung angezeigt werden soll, wenn Sie die automatische Anzeige beim App -Start deaktiviert haben. Wenn Sie diese Methode aufrufen, wird die Delegate -Methode iRateShouldPromptForRating
nicht bezeichnet.
- (void)promptForRating;
Diese Methode löst sofort die Bewertungsaufforderung aus, ohne zu überprüfen, ob der App Store verfügbar ist, und ohne die IRATE -MOTTROMPTFORTFORRATION -Delegate -Methode. Beachten Sie, dass diese Methode von den Eigenschaften appStoreID
und applicationGenre
abhängt, die erst nach der Wahl des iTunes -Servers abgerufen werden. Wenn Sie diese Methode direkt aufrufen möchten, müssen Sie diese Eigenschaften im Voraus selbst festlegen oder stattdessen die methode promptIfNetworkAvailable
verwenden.
- (void)promptIfNetworkAvailable;
Diese Methode prüft, ob der App Store verfügbar ist, und wenn dies der Fall ist, wird die Bewertungsaufforderung für den Benutzer angezeigt. Die Delegate -Methode für die IRATE -SHOOLDPROMPTFORRATION wird aufgerufen, bevor die Warnung angezeigt wird, sodass Sie sie abfangen können. Beachten Sie, dass diese Methode, wenn Ihre App Sandboxed ist und nicht über die Network Access -Berechtigte verfügt, den Status der Netzwerkverfügbarkeit ignoriert. In diesem Fall müssen Sie jedoch die nicht funktionierende appStoreID
oder IRate manuell festlegen.
- (void)promptIfAllCriteriaMet;
Diese Methode prüft, ob alle Aufforderungkriterien erfüllt wurden, und ob der App Store verfügbar ist und wenn dies der Fall ist, wird die Bewertungsaufforderung für den Benutzer angezeigt. Die Delegate -Methode für die IRATE -SHOOLDPROMPTFORRATION wird aufgerufen, bevor die Warnung angezeigt wird, sodass Sie sie abfangen können.
- (void)openRatingsPageInAppStore;
Diese Methode überspringt die Benutzeralarm und öffnet die Seite für Anwendungsbewertungen im Mac- oder iPhone App Store, je nachdem, auf welcher Plattform IRATE ausgeführt wird. Diese Methode führt keine Überprüfungen durch, um zu überprüfen, ob der Computer über Netzwerkzugriff verfügt oder dass der App Store verfügbar ist. Es nennt auch die Delegate -Delegiermethode -iRateShouldOpenAppStore
. Sie sollten diese Methode verwenden, um die Bewertungsseite anstelle der Bewertungseigenschaft zu öffnen, da der Prozess zum Starten des App Store komplexer ist als in vielen Fällen nur die URL zu öffnen. Beachten Sie, dass diese Methode von der appStoreID
abhängt, die erst nach der Wahl des iTunes -Servers abgerufen wird. Wenn Sie diese Methode anrufen, ohne zuerst eine Update -Prüfung durchzuführen, müssen Sie entweder die appStoreID
-Eigenschaft im Voraus festlegen oder das Risiko, dass die Methode möglicherweise einige Zeit in Anspruch nimmt, um einen Netzwerkanruf zu tätigen, oder vollständig auszufüllen. Bei Erfolg nennt diese Methode die Delegate -Methode für die Delegierten der Delegaten -iRateDidOpenAppStore
. Bei Ausfall wird die -iRateCouldNotConnectToAppStore:
Delegate -Methode aufgerufen.
- (void)logEvent:(BOOL)deferPrompt;
Diese Methode kann von überall in Ihrer App aufgerufen werden (nachdem IRate konfiguriert wurde) und erhöht die iate signifikante Ereignisanzahl. Wenn die vordefinierte Anzahl von Ereignissen erreicht ist, wird die Bewertungsaufforderung angezeigt. Der optionale Parameter für DeferPrompt wird verwendet, um festzustellen, ob die Eingabeaufforderung sofort angezeigt wird (nein) oder ob die App bis zum nächsten Start wartet (ja).
- (void)remindLater;
Diese Methode setzt die Erinnerungsfrist zurück.
Das verärgerte Protokoll enthält die folgenden Methoden, die angewendet werden können, und das Standardverhalten überschreibt. Alle Methoden sind optional.
- (void)iRateCouldNotConnectToAppStore:(NSError *)error;
Diese Methode wird aufgerufen, wenn IRATE keine Verbindung zum App Store herstellen kann, normalerweise weil die Netzwerkverbindung nicht mehr ausgefallen ist. Dies kann auch ausfeuern, wenn Ihre App aufgrund von Sandbox -Berechtigungen keinen Zugriff auf das Netzwerk hat. In diesem Fall müssen Sie die AppStoreid manuell einstellen, damit IRATE noch funktionieren kann.
- (void)iRateDidDetectAppUpdate;
Diese Methode wird aufgerufen, wenn IRate feststellt, dass die Anwendung seit dem letzten Start des letzten Starts aktualisiert wurde.
- (BOOL)iRateShouldPromptForRating;
Diese Methode wird unmittelbar vor der Bewertungsaufforderung auf den Benutzer aufgerufen. Sie können diese Methode verwenden, um zusätzlich zu den Standardregeln benutzerdefinierte Eingabeaufforderungslogik zu implementieren. Sie können diese Methode auch verwenden, um die Standard -Eingabeaufforderung -Warnung zu blockieren und die Bewertungsaufforderung anders anzuzeigen oder sie insgesamt zu umgehen.
- (void)iRateDidPromptForRating;
Diese Methode wird unmittelbar vor der Bewertung aufgerufen. Dies ist nützlich, wenn Sie Analysen verwenden, um zu verfolgen, wie viel Prozent der Benutzer die Eingabeaufforderung sehen und dann zum App Store gehen. Dies kann Ihnen helfen, die Umstände zu bestrafen, wann/wie Sie die Eingabeaufforderung zeigen.
- (void)iRateUserDidAttemptToRateApp;
Dies wird aufgerufen, wenn der Benutzer die Taste in der Bewertungsaufforderung gedrückt hat. Dies ist nützlich, wenn Sie die Benutzerinteraktion mit IRate protokollieren möchten. Diese Methode wird nur aufgerufen, wenn Sie die Eingabeaufforderung für die Standard -Warnansicht verwenden und nicht automatisch aufgerufen werden, wenn Sie eine benutzerdefinierte Bewertungsimplementierung angeben oder die openRatingsPageInAppStore
-Methode direkt aufrufen.
- (void)iRateUserDidDeclineToRateApp;
Dies wird aufgerufen, wenn sich der Benutzer absetzt, die App zu bewerten. Dies ist nützlich, wenn Sie die Benutzerinteraktion mit IRate protokollieren möchten. Diese Methode wird nur dann aufgerufen, wenn Sie die Eingabeaufforderung für die Standard -Warnansicht verwenden und nicht automatisch aufgerufen werden, wenn Sie eine benutzerdefinierte Bewertungsimplementierung angeben.
- (void)iRateUserDidRequestReminderToRateApp;
Dies wird aufgerufen, wenn der Benutzer erinnert werden soll, um die App zu bewerten. Dies ist nützlich, wenn Sie die Benutzerinteraktion mit IRate protokollieren möchten. Diese Methode wird nur dann aufgerufen, wenn Sie die Eingabeaufforderung für die Standard -Warnansicht verwenden und nicht automatisch aufgerufen werden, wenn Sie eine benutzerdefinierte Bewertungsimplementierung angeben.
- (BOOL)iRateShouldOpenAppStore;
Diese Methode wird unmittelbar vor dem Versuch, den App Store zu öffnen, aufgerufen. NEIN NEIN, wenn Sie Ihre eigene Bewertungsseite implementieren möchten, Anzeige -Logik.
- (void)iRateDidOpenAppStore;
Diese Methode wird sofort aufgerufen, nachdem IRate den App Store geöffnet hat.
Die Standard -Saiten für IRate sind bereits für viele Sprachen lokalisiert. Standardmäßig wird IRATE alle Lokalisierungen in der IRATE verwenden. Die wütenden Saitenschlüssel sind:
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";
Wenn Sie es vorziehen möchten, nur die Lokalisierungen zu verwenden, die in Ihrer Bewerbung aktiviert sind (damit Ihre App nur Englisch, Französisch und Spanisch unterstützt, wird IRATE automatisch für diese Sprachen lokalisiert, aber nicht für Deutsch, auch wenn IRATE ein Deutsch umfasst Sprachdatei), stellen Sie die Option useAllAvailableLanguages
auf Nr.
Es wird nicht empfohlen, die Zeichenfolgendateien in der IRATE.Bundle zu ändern, da die Aktualisierung neuerer Versionen von IRATE die Aktualisierung kompliziert wird. Die Ausnahme davon ist, wenn Sie zusätzliche Sprachen oder Verbesserungen oder Korrekturen für die Lokalisierungen im IRATE -Projekt auf Github einreichen möchten (die sehr geschätzt werden).
Wenn Sie eine zusätzliche Sprache für IRate in Ihrer App hinzufügen möchten, ohne sie an das GitHub -Projekt zurückzugeben, können Sie diese Zeichenfolgen direkt zur entsprechenden Lokalisable.Strings -Datei in Ihrem Projektordner hinzufügen. Wenn Sie einige oder alle Standard -IRate -Zeichenfolgen ersetzen möchten, besteht die einfachste Option darin, nur diese Zeichenfolgen in Ihre eigene Lokalisable.Strings -Datei zu kopieren und diese dann zu ändern. IRATE verwendet automatisch Zeichenfolgen im Hauptanwendungsbündel, die sich für die im IRATE -Bundle bevorzugen, sodass Sie jede Zeichenfolge auf diese Weise überschreiben können.
Wenn Sie keine der Standard -Lokalisierungen verwenden möchten, können Sie die IRATE.Bundle insgesamt weglassen. Beachten Sie, dass es nicht erforderlich ist, die anderen Zeichenfolgendateien von iRate.bundle zu löschen, wenn Sie nur eine Teilmenge von Sprachen unterstützen möchten. Setzen Sie einfach useAllAvailableLanguages
auf Nein, und Iate verwendet nur die Sprachen, die Ihre App bereits unterstützt.
Die alte Methode zur Überschreibung von IRATE -Standard -Zeichenfolgen unter Verwendung einzelner Setter -Methoden (siehe unten) wird weiterhin unterstützt. Der empfohlene Ansatz besteht jedoch darin, diese Zeichenfolgen in die lokalisierbare.
+ (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");
}
Wenn Sie zum ersten Mal das Basis -Mac- oder iPhone -Beispielprojekt erstellen und ausführen, wird eine Warnung angezeigt, in der Sie aufgefordert werden, die App zu bewerten. Dies liegt daran, dass die Option PreviewMode festgelegt ist.
Deaktivieren Sie die Option PreviewMode und spielen Sie mit den anderen Einstellungen, um zu sehen, wie sich die App in der Praxis verhält.
Das erweiterte Beispiel zeigt, wie Sie eine vollständig maßgeschneiderte Schnittstelle mit den verärgerten Methoden implementieren können. Die automatische Aufforderung ist deaktiviert, und stattdessen kann der Benutzer die App bewerten, indem er die Schaltfläche "Diese App bewerten" drückt.
Beim Drücken prüft die App zunächst, dass der App Store verfügbar ist (es kann möglicherweise nicht sein, wenn der Computer keine Internetverbindung hat oder Apple.com nicht ausgefallen ist), und startet dann den Mac App Store.
Das Beispiel ist für Mac OS, aber das gleiche Prinzip kann auf iOS angewendet werden.
Version 1.12.2
Version 1.12.1
Version 1.12
Version 1.11.7
Version 1.11.6
Version 1.11.5
Version 1.11.4
canOpenURL:
Version 1.11.3
Version 1.11.2
Version 1.11.1
Version 1.11
promptIfCriteriaMet
NSNotificationCenter
-Benachrichtigungen als Alternative zum Delegieren hinzugefügtUIAlertController
anstelle von UIAlertView
falls verfügbarVersion 1.10.3
Version 1.10.2
Version 1.10.1
Version 1.10
daysUntilPrompt
nach einem App -Update nicht mehr unterbrichtpromptForNewVersionIfUserRated
hinzugefügt, um Benutzer, die zuvor bewertet wurden (standardmäßig auszuschalten), um Benutzer neu zu befriedigen.updateMessage
-Eigenschaft für die Verwendung mit der Option promptForNewVersionIfUserRated
hinzugefügtVersion 1.9.3
Version 1.9.2
Version 1.9.1
Version 1.9
promptAgainEachVersion
Version 1.8.3
Version 1.8.2
Version 1.8.1
Version 1.8
Version 1.7.5
Version 1.7.4
Version 1.7.3
Version 1.7.2
Version 1.7.1
Version 1.7
Version 1.6.2
Version 1.6.1
Version 1.6
Version 1.5.3
Version 1.5.2
Version 1.5.1
Version 1.5
Version 1.4.9
Version 1.4.8
Version 1.4.7
Version 1.4.6
Version 1.4.5
Version 1.4.4
Version 1.4.3
Version 1.4.2
Version 1.4.1
Version 1.4
Version 1.3.5
Version 1.3.4
iRateDidDetectAppUpdate
-Delegate -Methode hinzuVersion 1.3.3
Version 1.3.2
Version 1.3.1
Version 1.3
Version 1.2.3
Version 1.2.2
Version 1.2.1
MAC_APP_STORE_REFRESH_DELAY
to 5 seconds to support older machinesVersion 1.2
Version 1.1
Version 1.0