focus-ios
focus-ios copied to clipboard
Unable to dismiss "Rate app" message with custom keyboard
Preconditions:
- Add a few shortcuts to the homescreen
Steps to reproduce:
- Restart the app
- 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)
┆Issue is synchronized with this Jira Task
@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:
- Add a 'Done' button on the toolbar above the keyboard like in the image below.
- Make the "Go" button ( bottom right) dismiss the keyboard if the search input is empty.
- 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 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.
@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.
Next steps:
- We should work out if this is a significant issue by adding telemetry to identify custom keyboard users
Should update to this method for iOS16+ at the same time https://developer.apple.com/documentation/storekit/requestreviewaction
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.
What is our current logic for when it pops up? I don't think many people use the settings very often
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.
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 review telemetry