expo-store-review
provides access to the SKStoreReviewController
API in iOS 10.3+ devices, and ReviewManager
API in Android 5.0+ allowing you to ask the user to rate your app without ever having to leave the app itself.Android Device | Android Emulator | iOS Device | iOS Simulator | Web |
---|---|---|---|---|
expo install expo-store-review
If you're installing this in a bare React Native app, you should also follow these additional installation instructions.
import * as StoreReview from 'expo-store-review';
StoreReview.requestReview();
StoreReview.requestReview()
. On iOS, this will return true
if the device is running iOS 10.3+. On Android, this will return true
if the device is running Android 5.0+. On Web, this will return false
.StoreReview.isAvailableAsync();
Constants
API to get the Constants.manifest.ios.appStoreUrl
on iOS, or the Constants.manifest.android.playStoreUrl
on Android.null
.const url = StoreReview.storeUrl();
true
if StoreReview.requestReview()
is capable directing the user to some kind of store review flow. If the app config (app.json
) does not contain store URLs and native store review capabilities are not available then the promise will fulfill to false
.if (await StoreReview.hasAction()) { // you can call StoreReview.requestReview() }
isAvailableAsync()
to avoid this error.StoreReview.requestReview()
from a button - instead try calling it after the user has finished some signature interaction in the app.action=write-review
. For example:const itunesItemId = 982107779; // Open the iOS App Store in the browser -> redirects to App Store on iOS Linking.openURL(`https://apps.apple.com/app/apple-store/id${itunesItemId}?action=write-review`); // Open the iOS App Store directly Linking.openURL( `itms-apps://itunes.apple.com/app/viewContentsUserReviews/id${itunesItemId}?action=write-review` );
showAllReviews=true
like this:const androidPackageName = 'host.exp.exponent'; // Open the Android Play Store in the browser -> redirects to Play Store on Android Linking.openURL( `https://play.google.com/store/apps/details?id=${androidPackageName}&showAllReviews=true` ); // Open the Android Play Store directly Linking.openURL(`market://details?id=${androidPackageName}&showAllReviews=true`);