Permissions API

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

Les permissions d'API fournissent une manière consistente de demander programatiquement le statut des permissions dans le context courrant— par exemple, si l'autorisation d'utiliser l'API est accordée ou refusée, et si l'utilisateur sera invité à indiquer si une autorisation doit être accordée pour une API.

Conceptes et usages

Historiquement les differentes API gérée leur propres permissions inconsistamment — par example l'API Notifications permet de vérifier explicitement sont status d'autorisation et et d'en faire la demande, alors que l'API de Geolocation ne le fait pas (ce qui peut poser des problèmes si l'utilisateur décline la première demande d'autorisation). L'API de permissions fournit l'outil pour autorisé les déveloopers à implementes une meilleure expérience utilisteur.

La propriétée permissions a rendu disponible dans l'objet Navigator, ainsi que dans le context standard du navigateur browsin et dans le context du worker (WorkerNavigator — donc les vérificationd de permissions sont disponible dans les workers), et retournent un obet Permissions qui fournit l'accés aux fonctionalité des Permissions API.

Une fois que vous avez cette objet vous pouvez effectuer une tache nécéssitant des permissions, par exemple demander la permission en utilisant la méthode Permissions.query() pour retourner une promesse qui résous avec PermissionStatus pour une API spécifique.

Toutes les status de permissions d'API ne peuvent être demandé en utilisant Permissions API. API notables prenant en compte les autorisations:

Plus d'APIs devrais être supporté par Permissions API dans le future.

Examples

Nous avons fait un exemple simple appelé Location Finder. Vous pouvez lancer cet exemple en live ici, ou voire le code source sur Github.

Ou en lire plus sur comment cela fonctionne dans notre article Utiliser Permissions API.

Interfaces

Navigator.permissions et WorkerNavigator.permissions Lecture seule
Fournit l'accés à l'objet Permissions depuis context principal ainsi que celui du worker.
Permissions
Fournit la principale fonctionalité de Permission API, tel que les methodes de demande et revocation de permissions.
PermissionStatus
Fournit l'accés au status actuel d'une permission, et un gestionnaire d'évenement pour répondre au changements de status d'une permission.

Specification

Specification Status Comment
Permissions Version de travail Initial definition.

Browser compatibility

Permissions interface

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
PermissionsChrome Support complet 43Edge Aucun support NonFirefox Support complet 46IE Aucun support NonOpera Support complet OuiSafari Aucun support NonWebView Android Support complet 43Chrome Android Support complet 43Firefox Android Support complet 46Opera Android Support complet OuiSafari iOS Aucun support NonSamsung Internet Android Support complet 4.0
accelerometer permissonChrome Support complet 62Edge Aucun support NonFirefox ? IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 62Chrome Android Support complet 62Firefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 8.0
accessibility events permissonChrome Support complet 62Edge Aucun support NonFirefox ? IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 62Chrome Android Support complet 62Firefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 8.0
ambient-light-sensor permissonChrome Support complet 62Edge Aucun support NonFirefox ? IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 62Chrome Android Support complet 62Firefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 8.0
accelerometer permissonChrome Support complet 62Edge Aucun support NonFirefox ? IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 62Chrome Android Support complet 62Firefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 8.0
camera permissionChrome Support complet 64Edge Aucun support NonFirefox ? IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 64Chrome Android Support complet 64Firefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 9.0
clipboard-read permissonChrome Support complet 64Edge Aucun support NonFirefox Aucun support NonIE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 64Chrome Android Support complet 64Firefox Android Aucun support NonOpera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 9.0
clipboard-write permissionChrome Support complet 64Edge Aucun support NonFirefox Aucun support NonIE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 64Chrome Android Support complet 64Firefox Android Aucun support NonOpera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 9.0
geolocation permissionChrome Support complet 43Edge Aucun support NonFirefox ? IE Aucun support NonOpera Support complet 30Safari Aucun support NonWebView Android Aucun support NonChrome Android Support complet 43Firefox Android ? Opera Android Support complet 30Safari iOS Aucun support NonSamsung Internet Android Support complet 4.0
background-sync permissionChrome Support complet 51Edge Aucun support NonFirefox ? IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 51Chrome Android Support complet 51Firefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 5.0
magnetometer permissionChrome Support complet 62Edge Aucun support NonFirefox ? IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 62Chrome Android Support complet 62Firefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 8.0
microphone permissionChrome Support complet 64Edge Aucun support NonFirefox ? IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 64Chrome Android Support complet 64Firefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 9.0
midi permissionChrome Support complet 43Edge Aucun support NonFirefox ? IE Aucun support NonOpera Support complet 30Safari Aucun support NonWebView Android Aucun support NonChrome Android Support complet 43Firefox Android ? Opera Android Support complet 30Safari iOS Aucun support NonSamsung Internet Android Support complet 4.0
notifications permissionChrome Support complet 43Edge Aucun support NonFirefox ? IE Aucun support NonOpera Support complet 30Safari Aucun support NonWebView Android Aucun support NonChrome Android Support complet 43Firefox Android ? Opera Android Support complet 30Safari iOS Aucun support NonSamsung Internet Android Support complet 4.0
payment-handler permissionChrome Support complet 66Edge Aucun support NonFirefox ? IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 66Chrome Android Support complet 66Firefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 9.0
persistent-storage permissionChrome Support complet 71Edge Aucun support NonFirefox Support complet 53IE Aucun support NonOpera Support complet 58Safari Aucun support NonWebView Android Support complet 71Chrome Android Support complet 71Firefox Android Support complet 53Opera Android Support complet 50Safari iOS Aucun support NonSamsung Internet Android Support complet 10.0
push permissionChrome Support complet 43Edge Aucun support NonFirefox ? IE Aucun support NonOpera Support complet 30Safari Aucun support NonWebView Android Aucun support NonChrome Android Support complet 43Firefox Android ? Opera Android Support complet 30Safari iOS Aucun support NonSamsung Internet Android Support complet 4.0
queryChrome Support complet 43Edge Aucun support NonFirefox Support complet 46IE Aucun support NonOpera Support complet OuiSafari Aucun support NonWebView Android Support complet 43Chrome Android Support complet 43Firefox Android Support complet 46Opera Android Support complet OuiSafari iOS Aucun support NonSamsung Internet Android Support complet 4.0
request
ExpérimentaleNon-standard
Chrome Support complet 46Edge Aucun support NonFirefox Aucun support NonIE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 46Chrome Android Support complet 46Firefox Android Aucun support NonOpera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 5.0
requestAll
ExpérimentaleNon-standard
Chrome Support complet 48Edge Aucun support NonFirefox Aucun support NonIE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 48Chrome Android Support complet 48Firefox Android Aucun support NonOpera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 5.0
revoke
ExpérimentaleNon-standard
Chrome Support complet 46Edge Aucun support NonFirefox Support complet 51
Désactivée
Support complet 51
Désactivée
Désactivée From version 51: this feature is behind the dom.permissions.revoke.enable preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Aucun support 47 — 51
IE Aucun support NonOpera ? Safari Aucun support NonWebView Android Support complet 46Chrome Android Support complet 46Firefox Android Support complet 51
Désactivée
Support complet 51
Désactivée
Désactivée From version 51: this feature is behind the dom.permissions.revoke.enable preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Aucun support 47 — 51
Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Support complet 5.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.

See also