KjellConnelly / react-native-rate

Send your app users to Apple App Store, Google Play, Amazon, or other using the newest APIs
635 stars 100 forks source link

The Android in-app review does not open after I have already reviewed #72

Closed rorlf closed 2 years ago

rorlf commented 3 years ago

If the user has already reviewed the app in the store, the in-app review does not open and does not open the Play Store and the successful callback comes true. My options are:

 AppleAppID: APPLE_APP_ID,
    GooglePackageName: GOOGLE_PACKAGE_NAME,
    preferredAndroidMarket: AndroidMarket.Google,
    preferInApp: true,
    openAppStoreIfInAppFails: true,

I think that if the in-app review did not open, it should open the Play Store, as in the iOS that opens the AppStore.

gabcvit commented 3 years ago

Hi @rorlf, I believe that this is not really a bug, it's rather a misunderstanding. Please have a look on the official in-app reviews documentation: https://developer.android.com/guide/playcore/in-app-review/test#troubleshooting

In this particular topic I linked it's stated that when: The user has already reviewed the app., the in-app review won't show up. It would also not make much sense for the user experience to keep requesting for ratings to users that already rated your app.

EDIT: For iOS, the dialogs will not keep showing up in a real scenario after the user rated the app, only when you're running it in a test environment. But that's the difference between Google and Apple and how they approach in-app ratings natively, not much related to the library.

juliar commented 3 years ago

Hi @gabcvit , thanks for the response! I'm having this issue as well.

I agree it's better not to request a rating from a user that has already reviewed, however it seems there is no way to tell whether a user has already reviewed or not. So if we request a rating from a user that coincidentally has already reviewed, nothing happens, which is an unexpected user experience. It would be better to open the Play Store page instead, so the user could edit their existing review.

It would be helpful to at least know whether the in-app review prompt has appeared, although I'm not sure whether there's a reliable way to do that. Or if you know of a way to tell whether the user has already reviewed, that would work too. Thank you!

KjellConnelly commented 2 years ago

Adding a bit of info to the README on this topic. Closing now.

weraaaaz commented 2 years ago

Is there any way to determine if the user has already reviewed?

huntzinger92 commented 2 months ago

According to the current readme on the preferInApp option:

If true and user is on iOS, tries to use SKStoreReviewController. If true and user is on Android, it will try to use the native UI. If fails for whatever reason, or user is on another platform, opens the App Store externally.

And for openAppStoreIfInAppFails:

If preferInApp = true but the native iOS and Android UI failed, opens the store externally. Default true

I currently have the preferInApp and openAppStoreIfInAppFails options both set to true and neither the in app or play/app store navigation is happening, in precisely the manner described by @rorlf above. That seems to contradict the behavior described in the readme, which implies if the rate-in-app workflow fails, it will open the play/app store.

If that's correct, it would be great to update the readme to reflect this.