Démarrage rapide .NET MAUI
WordsAreFlowing.Sdk.Maui ajoute l'invite d'évaluation native à la tête
.NET : Google Play In-App Review sur Android (API 24 et plus) et StoreKit sur iOS
(15 et plus). Tout ce qui figure sur la page .NET —
déclencheurs, décisions, notes — fonctionne de la même façon ici.
1. Installer
dotnet add package WordsAreFlowing.Sdk.Maui
Les paquets sont sur nuget.org. Ce paquet apporte WordsAreFlowing.Sdk
et WordsAreFlowing.Sdk.Core.
2. Inscrire
Dans MauiProgram.cs, appelez
AddWordsAreFlowingMaui. Ses options sont un
WordsAreFlowingMauiOptions, qui a toutes les
options de la tête .NET, plus une.
using WordsAreFlowing.Sdk.Maui;
builder.Services.AddWordsAreFlowingMaui(o =>
{
o.ApiKey = "waf_live_…";
o.AppVersion = AppInfo.VersionString;
#if DEBUG
o.UseFakeReviewManager = true; // versions de débogage Android seulement — ne jamais livrer
#endif
});
Ce qu'il met en place pour vous :
- Détection de la plateforme.
Platformest déterminée par l'appareil (android,ios,macos,windowsouunknown), et toute valeur que vous fixez est remplacée. - Stockage. Les compteurs vivent dans les Preferences de MAUI, dans leur propre
conteneur nommé
wordsareflowing, donc lePreferences.Clear()de votre application ne les efface pas. - L'invite d'évaluation. Google Play In-App Review sur Android, StoreKit sur iOS.
Aucun flux d'évaluation n'est fourni pour Windows ni macOS ; là, une règle d'invite se
termine par
prompter_unavailable, comme sur le Web.
Le stockage et l'invite sont des singletons, donc un point d'accroche du cycle de vie natif et un composant Blazor partagent les mêmes compteurs. Comme pour la tête .NET, une inscription que vous faites avant cet appel l'emporte.
3. La demande et les déclencheurs
Dans une application Blazor Hybrid, utilisez le composant FeedbackAsk et
TrackAsync exactement comme sur la
page .NET. Le paquet n'a pas de contrôle XAML ; une
application seulement XAML écoute DecisionMade et dessine sa
propre demande, puis appelle SubmitFeedbackAsync ou
DismissAskAsync.
var decision = await loop.TrackAsync("trip_finished");
// StorePromptFired veut dire que la plateforme a été sollicitée. Si une fenêtre est apparue, elle ne le dit pas.
Android : Google Play In-App Review
L'invite vient de la bibliothèque com.google.android.play:review de Google. Play
décide si une boîte de dialogue apparaît vraiment et ne le signale jamais, donc
StorePromptFired veut dire « Play a été sollicité », pas « la personne
l'a vue ».
Le vrai gestionnaire d'évaluation ne réussit que pour une application qui a été installée depuis
une piste Play. Une version de débogage qui n'est sur aucune piste ne peut pas réussir, donc
UseFakeReviewManager passe au
FakeReviewManager de Play, qui répond succès et n'affiche rien. Servez-vous-en pour
exercer le chemin en débogage. Ne le livrez jamais à true : vos utilisateurs
ne verraient jamais d'invite. Pour voir la vraie boîte de dialogue, installez depuis une piste de
test interne.
iOS : StoreKit
Le SDK appelle AppStore.RequestReview sur iOS 16 et plus, et
SKStoreReviewController.RequestReview sur iOS 15. Apple affiche la fenêtre au plus
trois fois en 365 jours, toujours dans les versions de développement, et jamais dans
TestFlight — une version TestFlight ne peut pas prouver la fenêtre. StoreKit ne dit pas
non plus si elle est apparue.
Plafonds
Par défaut, le SDK demande l'invite d'évaluation au plus deux fois sur toute période glissante de
365 jours sur Android, et trois fois sur iOS. Le maxPerYear d'une règle (de 1 à 3)
remplace ce défaut pour son déclencheur, l'option
MaxStorePromptsPerYear ne peut qu'abaisser le
plafond, et rien ne dépasse jamais trois. Voyez la référence des
règles.