focus-ios icon indicating copy to clipboard operation
focus-ios copied to clipboard

Unable to dismiss "Rate app" message with custom keyboard

Open SimonBasca opened this issue 3 years ago • 10 comments

Preconditions:

  • Add a few shortcuts to the homescreen

Steps to reproduce:

  1. Restart the app
  2. Repeat step 1)

Actual results:

  • After a few restarts the "Rate app" dialog is displayed. I was unable to dismiss it with a custom keyboard. After changing the keyboard to the default iOS one I was able to dismiss the dialog Build : 155e8c54da5a Device: iPhone Xr (14.6) image

┆Issue is synchronized with this Jira Task

SimonBasca avatar Sep 07 '21 08:09 SimonBasca

@brampitoyo @st3fan As we discussed on Wednesday we have a couple of options to make this work. Tapping outside doesn't seem to be one of them since the alert can't be dismissed this way and we don't have a way to catch that event. What we can do is:

  1. Add a 'Done' button on the toolbar above the keyboard like in the image below.
  2. Make the "Go" button ( bottom right) dismiss the keyboard if the search input is empty.
  3. Relocate the presentation of the alert (my understanding is this method in not preferred since we rely on good rating).

What do you think?

razvanlitianu avatar Oct 22 '21 10:10 razvanlitianu

@razvanlitianu the other option is to carefully time the presentation of this dialog so that we only show it when we know the keyboard is not up.

Looking at the code, we call requestReviewIfNecessary() from clearBrowser() and that will 100% guaranteed result in the keyboard being up - because when we clear the browser, we focus on the location bar, which will result in the keyboard activating. It feels like we could do something smarter there to avoid that.

I guess what makes this tricky is that SKStoreReviewController.requestReview() doesn't actually always show the rating dialog. iOS decided when it will do that. And it does not tell us if the dialog appeared, which makes it hard to decide whether the keyboard should go up or not.

I wonder if we can work around that - or maybe find a better time and place to ask for a review.

st3fan avatar Oct 22 '21 16:10 st3fan

@razvanlitianu I like the approach that @st3fan proposed. This ratings dialog should never show up while people are trying to go somewhere. It would be really annoying.

A good solution would be to avoid showing it whenever the keyboard is up.

brampitoyo avatar Nov 02 '21 05:11 brampitoyo

Next steps:

  • We should work out if this is a significant issue by adding telemetry to identify custom keyboard users

rtestard avatar Oct 18 '22 13:10 rtestard

Should update to this method for iOS16+ at the same time https://developer.apple.com/documentation/storekit/requestreviewaction

jevans-mozilla avatar Oct 18 '22 13:10 jevans-mozilla

Hi @rtestard, @jevans-mozilla, what do you think if we show the app store review request on the settings screen? We let the same behavior, but we show it there.

Demo

PARAIPAN9 avatar Nov 21 '22 15:11 PARAIPAN9

What is our current logic for when it pops up? I don't think many people use the settings very often

jevans-mozilla avatar Nov 21 '22 23:11 jevans-mozilla

After 14 launches of the app, after the trash is pressed, the rating request appears, then, after 90 days. The request cannot show up more then 3 times in 365 days. I think that, sometime users will check the settings menu, maybe to set biometrics, theme, default browser, and since we cannot show it many times, this will be a good place, and solve the custom keyboard problem.

PARAIPAN9 avatar Nov 22 '22 08:11 PARAIPAN9

https://github.com/mozilla-mobile/focus-ios/issues/3526 will help assess if the issue is significant enough. I think we all assume the custom keyboard population is very small assuming this is confirmed with telemetry I'd recommend not displaying the app rating message to custom keyboard users. We'll have the data with 108 in 4 weeks so it sounds worth waiting to then make the right decision.

In general dispalying inside settings feels risky because users rarely go there and users who go there have a purpose and we'd get on there way of completing it (the post trash can timing works pretty well in my opinion since it signals the end of a task)

rtestard avatar Nov 25 '22 11:11 rtestard

@rtestard review telemetry

rtestard avatar Jan 17 '23 14:01 rtestard