Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Permissions-API bietet eine konsistente programmatische Methode, um den Status von API-Berechtigungen abzufragen, die dem aktuellen Kontext wie einer Webseite oder einem Worker zugewiesen sind. Zum Beispiel kann sie verwendet werden, um festzustellen, ob die Berechtigung für den Zugriff auf eine bestimmte Funktion oder API erteilt, verweigert oder spezifische Benutzerberechtigung erforderlich ist.
Konzepte und VerwendungHistorisch gesehen handhaben verschiedene APIs ihre Berechtigungen inkonsistent â zum Beispiel bot die Benachrichtigungs-API ihre eigenen Methoden zur Anforderung von Berechtigungen und zum Ãberprüfen des Berechtigungsstatus, während die Geolocation-API dies nicht tat. Die Permissions-API stellt Entwicklern die Werkzeuge zur Verfügung, um eine konsistente Benutzererfahrung im Umgang mit Berechtigungen zu implementieren.
Die Berechtigungen dieser API aggregieren effektiv alle Sicherheitsbeschränkungen für den Kontext, einschlieÃlich der Anforderung, dass eine API in einem sicheren Kontext verwendet wird, der auf das Dokument angewandten Permissions-Policy-Beschränkungen, Anforderungen an die Benutzerinteraktion und Benutzereingaben. Wenn eine API beispielsweise durch Berechtigungsrichtlinien eingeschränkt ist, würde die zurückgegebene Berechtigung denied
sein und der Benutzer würde nicht um Zugriff gebeten.
Die permissions
-Eigenschaft wurde sowohl im Standard-Browsing-Kontext als auch im Worker-Kontext (WorkerNavigator
â sodass Berechtigungsprüfungen innerhalb von Workern verfügbar sind) auf dem Navigator
-Objekt verfügbar gemacht und gibt ein Permissions
-Objekt zurück, das Zugriff auf die Funktionalität der Permissions-API bietet.
Sobald Sie dieses Objekt haben, können Sie die Methode Permissions.query()
verwenden, um ein Promise
zurückzugeben, das mit dem PermissionStatus
für eine bestimmte API aufgelöst wird.
Wenn der Berechtigungsstatus auf prompt
gesetzt ist, muss der Benutzer eine Eingabe bestätigen, um Zugang zur Funktion zu gewähren.
Der Mechanismus, der diese Aufforderung auslöst, hängt von der spezifischen API ab â er ist nicht als Teil der Permissions-API definiert. Im Allgemeinen wird der Auslöser durch Code ausgelöst, der eine Methode aufruft, um auf die Funktion zuzugreifen oder sie zu öffnen, oder der sich für Benachrichtigungen von der Funktion registriert, die sie anschlieÃend aufruft.
Beachten Sie, dass nicht alle Funktionen eine Eingabeaufforderung erfordern. Die Berechtigung könnte durch eine Permission Policy
, implizit durch transient activation oder durch einen anderen Mechanismus gewährt werden.
Das Widerrufen von Berechtigungen wird nicht von der API verwaltet. Genauer gesagt wurde eine Methode Permissions.revoke()
vorgeschlagen, aber in den Browsern, in denen sie implementiert wurde, wieder entfernt.
Benutzer können Berechtigungen für bestimmte Sites manuell über die Browsereinstellungen entfernen:
Nicht der Berechtigungsstatus aller APIs kann mit der Permissions-API abgefragt werden. Eine nicht erschöpfende Liste von berechtigungsbewussten APIs umfasst:
background-sync
(sollte immer gewährt werden)clipboard-read
, clipboard-write
compute-pressure
geolocation
local-fonts
microphone
, camera
notifications
payment-handler
push
captured-surface-control
, display-capture
screen-wake-lock
accelerometer
, gyroscope
, magnetometer
, ambient-light-sensor
storage-access
, top-level-storage-access
persistent-storage
bluetooth
midi
window-management
Permissions
Bietet die Kernfunktionalität der Permissions-API, wie Methoden zum Abfragen und Widerrufen von Berechtigungen.
PermissionStatus
Bietet Zugriff auf den aktuellen Status einer Berechtigung und einen Ereignishandler, um auf Ãnderungen des Berechtigungsstatus zu reagieren.
Navigator.permissions
und WorkerNavigator.permissions
Schreibgeschützt
Bietet Zugriff auf das Permissions
-Objekt aus dem Haupt- und Worker-Kontext.
Wir haben ein Beispiel namens Location Finder erstellt. Sie können das Beispiel live ausführen, den Quellcode auf GitHub ansehen oder mehr darüber lesen, wie es in unserem Artikel Die Permissions-API verwenden funktioniert.
Das Beispiel zu Permissions.query()
zeigt auch Code, der die meisten Berechtigungen im aktuellen Browser überprüft und das Ergebnis protokolliert.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4