britannio / in_app_review

A Flutter plugin for showing the In-App Review/System Rating pop up on Android, IOS, and MacOS. It makes it easy for users to rate your app.
314 stars 82 forks source link

request exit codes for the requestReview() #93

Closed bksubhuti closed 1 year ago

bksubhuti commented 1 year ago

I had the problem of the popup not showing .. maybe because I reviewed my own app a long time ago. It seems that this triggered my "quota". However, I did do the Internal app sharing with myself and that worked.

        if (await inAppReview.isAvailable()) {  // does not really mean the next call will succeed 
          await inAppReview.requestReview();  // it would be good if there were some exit codes that could be read.

Implementation is straight forward, but the call is void. I dont' get any try catch either when the dialog does not pop up.
It would be good to do that. Unfortunately, I pulled my previous release from production and just redirect to the appstore because of this lack of uncertainty.

Suggested return codes... alreadyReviewed quotaReached

Suggested Parameters optional param would be nice...


`inAppReview.requestReview(redirectToStoreOnFail:  true);  
`
bksubhuti commented 1 year ago

I should explain that I have a "task achievement" process for the request to come. My own popup box comes up and it asks if they want to rate telling them what they have used from the app. Then they can choose never, later, or rate the app. If they choose never, I raise a flag to never call again. If they choose later, I reset the "task achievement" to zero and start adding to the achievement again. If they choose rate, I will call your app and raise the flag not to call again.

If there are no launch buttons for the in_app_review, then the user will never know there was nothing launched when this fails. This is not a problem.. however, I wanted to control this more.

My guess is if there was already a review, then it won't show anything.

So it would be good if we could control more of this. Currently, I have a review by "task completion" and a button in the settings. My Rate -this- app -- button in the settings brings one to the store listing and does not request review() as recommended.

Perhaps if nothing can be done.. One better explain why there should be no button. The important reason is.. "it might not show up and it will look like a bug"

I think that if you are able to get information, and redirect the user to the store listing upon fail, this would be good.

britannio commented 1 year ago

Such return codes cannot be provided as no extra information is provided by the underlying Android/iOS APIs unfortunately.

The Android guidelines for using requestReview() state:

Your app should not ask the user any questions before or while presenting the rating button or card, including questions about their opinion (such as “Do you like the app?”) or predictive questions (such as “Would you rate this app 5 stars”).

This is partially because there is no guarantee that the popup will appear. Redirecting to the play store via openStoreListing() is a suitable approach for your task achievement scenario.