hippware / rn-chat

MIT License
5 stars 0 forks source link

[ios] Location onboarding to use more generic text instead of Always Allow #4871

Open southerneer opened 4 years ago

southerneer commented 4 years ago

Only choices are "when in use" and "once" (on ios 13)? I believe it's the same as this issue: https://github.com/react-native-community/react-native-permissions/issues/379

southerneer commented 4 years ago

@mstidham you may have run into this one already. If you already created a ticket could you please link it here?

bengtan commented 4 years ago

IIRC, on iOS 13, for a newly installed app, the first (few?) time(s) the iOS location permission dialog comes up, it only allows the user to choose 'When in use' and 'Once'. It doesn't allow the selection of 'Always'.

After the app has been used/installed for a while (3 days? A few days?), then it allows the selection of 'Always' (which replaces 'Once').

But ... my memory is not perfect so please do your own testing/research. I may be wrong.

bengtan commented 4 years ago

Previous ticket: [ios] Location services: "Always Allow" is not a pop-up option #4250

aksonov commented 4 years ago

@bengtan Yes, it is by iOS 13 design, you are right. I didn't have problem with our app when I selected 'Once' for first run and then 'Always' later.

aksonov commented 4 years ago

@southerneer And I believe I already investigated this issue and reported it to Miranda (that it is not in our code, it is because of iOS 13). Or you created this ticket after your testing?

southerneer commented 4 years ago

I didn't have problem with our app when I selected 'Once' for first run and then 'Always' later.

That makes sense, perhaps I should reword the title. The problem isn't that the app is broken in any way after the ios 13 changes, it's that the wording on the Onboarding screen ("With 'Always Allow' you won’t miss out on relevant location notifications.") doesn't reflect the choices presented to the user when they press the "Always Allow Location" button. I think that should be addressed. cc @irfirl

Thanks for linking the earlier issue @bengtan and reporting @mstidham

irfirl commented 4 years ago

Updated the messaging on the mock: https://zpl.io/an4vN7A

aksonov commented 4 years ago

I see issue now after I selected "Once" for ios popup. Hm, it is very unfriendly, I think we should allow 'Once' for first use.. @southerneer ?

Simulator Screen Shot - iPhone 8 Plus - 2020-03-12 at 17.45.56.png

southerneer commented 4 years ago

Maybe so, but that's a whole new set of changes. If we allow "once" for first use but then show the location warning modal immediately for the next app run that's not very friendly either. I think that problem warrants more discussion.

aksonov commented 4 years ago

I think we could request 'Always' next time and show this UI modal normally because iOS 13 will ask user with their popup at the same time (with 'Allow always' choice)

southerneer commented 4 years ago

I think we could request 'Always' next time and show this UI modal normally because iOS 13 will ask user with their popup at the same time (with 'Allow always' choice)

This won't work because we can only explicitly request permissions once. Subsequent changes require sending the user to the settings screen. This article gives a decent overview of the iOS 13 changes and how the flow works in different use cases. I think @irfirl 's suggestion of going back to the generic "Allow Location Access" makes sense for now. If we want to get more specific for iOS 13 later we can address that in a new ticket.

bengtan commented 4 years ago

QA notes:

Instead of emphasising 'Always Allow', the Onboarding Location screen/modal should now say:

Don’t miss out on relevant location notifications by allowing location access

followed by:

Allow Location Access