jamesmontemagno / StoreReviewPlugin

Request app store reviews across Xamarin and Windows applications
MIT License
184 stars 24 forks source link

Store Review Plugin for .NET MAUI, Windows, & Xamarin

Platform Support

Platform Version
Xamarin.iOS iOS 7+
Xamarin.tvOS All
Xamarin.Android API 10+
UWP API 10+
.NET 6+ iOS/Android/Mac/Windows/MAUI
macOS All

Build Status

NuGet

NuGet

API

Open store listing

This will open the related app store for your app identifier. iOS: This is found on your iTunes connect page for your app Android: This is your package Id from your Android Manifest. UWP: This is the Store ID: You can find the link to your app's Store listing on the App identity page, in the App management section of each app in your dashboard.

/// <summary>
/// Opens the store listing.
/// </summary>
/// <param name="appId">App identifier.</param>
void OpenStoreListing(string appId);

Open to Review Page

Launches app directly to Review Page if possible

/// <summary>
/// Opens the store review page.
/// </summary>
/// <param name="appId">App identifier.</param>
void OpenStoreReviewPage(string appId);

Request In-App Review

UWP (all versions), Android and iOS only to prompt for the user to review the app. Only on Android 5.0 (API level 21) & iOS 10.3+ devices:

Read for iOS: Requesting Reviews with iOS 10.3’s SKStoreReviewController

Read for Android: In-app reviews for your Android apps

/// <summary>
/// Requests the review.
/// </summary>
Task<ReviewStatus> RequestReview(bool testMode)

If you are on .NET 6 Windows you will need to set the Window handle before calling the method:

#if WINDOWS
        var windowObject = (MauiWinUIWindow)App.Current.Windows[0].Handler.PlatformView;
        StoreReviewImplementation.Window = windowObject;
#endif

Test mode is only used on Android.

Android setup

Ensure that you follow the Xamarin.Essentials setup steps. And follow the steps below if you linker behavior is not set to Don't Link.

Android code shrinker (Proguard & r8)

If you use the plugin with Link SDK assemblies only/Link all, you have to do the following:

  1. Create a proguard.txt file in your android project and add the following:
    -keep class com.google.android.play.core.common.PlayCoreDialogWrapperActivity
    -keep class com.google.android.play.core.review.** { *; }
    -keep class com.google.android.play.core.tasks.** { *; }
  1. Include it to your project
  2. Properties > Build Action > ProguardConfiguration
  3. Go to you Android project options and set your Code Shrinker to ProGuard or r8

Testing & Debugging issues

iOS

Android

Screenshots

iOS & Android screenshots of the In-App Review image

License

Under MIT, see LICENSE file.