Request OS-level permissions from the user.
The permission dialog is shown asynchronously. The result arrives as:
handle_info({:permission, capability, :granted | :denied}, socket)Capabilities that require this:
:camera:microphone:photo_library:location:notifications
Capabilities that need no permission: haptics, clipboard, share sheet, file picker.
Summary
Functions
Request an OS permission from the user.
Types
Functions
@spec request(Mob.Socket.t(), capability()) :: Mob.Socket.t()
Request an OS permission from the user.
The system dialog is shown asynchronously. The result arrives in
handle_info/2:
def handle_info({:permission, :camera, :granted}, socket), do: ...
def handle_info({:permission, :camera, :denied}, socket), do: ...Safe to call if the permission is already granted — the result still arrives
via handle_info with the current status.
Capabilities that do not require permission (haptics, clipboard, share sheet,
file picker) will raise FunctionClauseError — do not call request/2 for them.