Baseflow / flutter-permission-handler

Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
https://baseflow.com
MIT License
2.05k stars 861 forks source link

[Feature request]: Support limited Contacts access and Contacts Access Button on iOS 18+ #1376

Open ChristianEdwardPadilla opened 2 months ago

ChristianEdwardPadilla commented 2 months ago

Is there already an issue requesting this feature?

Please select affected platform(s)

Use case

Apple will introduce several new device contacts features in iOS 18:

  1. A new "limited" access level.
  2. A new view controller for picking contacts to include within the "limited" access dataset available to the app, contactAccess Picker.
  3. A new native UI element (Contacts Access Button) which effectively bypasses the normal permission flow to grant app access to user contacts. Apple expects that this will be the normal way to handle "limited" contacts access.

Docs for new "limited" access level: https://developer.apple.com/documentation/contacts/cnauthorizationstatus/limited?language=objc

Docs for contactAccess Picker https://developer.apple.com/videos/play/wwdc2024/10121/?time=898

Docs for new Contacts Access Button: https://developer.apple.com/documentation/contactsui/contactaccessbutton

Proposal

  1. permission_handler should properly communicate the "limited" state via the Dart API.
  2. permission_handler should expose a Dart API for launching the contactAccess Picker.
  3. permission_handler should CONSIDER exposing the Contact Access Button as a platform view which can be embedded as a widget.

Specific requirements or considerations

No response

Additional information or context

No response