DeviceOrientationEvent: requestPermission() statische Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die statische Methode requestPermission() des DeviceOrientationEvent-Interfaces fordert die Erlaubnis des Benutzers an, um auf Gerätorientierungsdaten von den Beschleunigungs- und Gyroskopsensoren zuzugreifen. Sie kann auch die Erlaubnis anfordern, auf Magnetometerdaten zuzugreifen, wenn eine absolute Orientierung benötigt wird. Diese Methode erfordert eine transiente Aktivierung, was bedeutet, dass sie durch ein UI-Ereignis wie einen Klick auf einen Button ausgelöst werden muss.
Syntax
DeviceOrientationEvent.requestPermission()
DeviceOrientationEvent.requestPermission(absolute)
Parameter
absoluteOptional-
Ein Boolean, der angibt, ob absolute Orientierungsdaten benötigt werden. Wenn
true, umfasst die Berechtigungsanfrage auch den Magnetometersensor. Standardmäßigfalse.
Rückgabewert
Ein Promise, das mit einem String aufgelöst wird, der entweder "granted" oder "denied" ist.
Ausnahmen
Das zurückgegebene Promise schlägt mit den folgenden Ausnahmen fehl:
NotAllowedErrorDOMException-
Der Berechtigungsstatus ist
"prompt"und die aufrufende Funktion hat keine transiente Aktivierung.
Sicherheit
Transiente Benutzeraktivierung ist erforderlich. Der Benutzer muss mit der Seite oder einem UI-Element interagieren, damit diese Funktion funktioniert.
Beispiele
>Anfordern der Erlaubnis zur Geräteorientierung bei Klick
document.querySelector("button").addEventListener("click", async () => {
if (typeof DeviceOrientationEvent.requestPermission !== "function") {
// The feature is not available, or does not need permission.
return;
}
const permission = await DeviceOrientationEvent.requestPermission();
if (permission === "granted") {
window.addEventListener("deviceorientation", (event) => {
console.log(`Alpha: ${event.alpha}`);
console.log(`Beta: ${event.beta}`);
console.log(`Gamma: ${event.gamma}`);
});
}
});
Anfordern der Erlaubnis zur absoluten Orientierung
Wenn absolute Orientierungsdaten benötigt werden (z. B. für kompassbasierte Anwendungen), übergeben Sie true als absolute-Parameter. Dies fordert zusätzlich den Zugriff auf das Magnetometer an.
document.querySelector("button").addEventListener("click", async () => {
if (typeof DeviceOrientationEvent.requestPermission !== "function") {
return;
}
const permission = await DeviceOrientationEvent.requestPermission(true);
if (permission === "granted") {
window.addEventListener("deviceorientationabsolute", (event) => {
console.log(`Absolute alpha: ${event.alpha}`);
});
}
});
Spezifikationen
| Spezifikation |
|---|
| Device Orientation and Motion> # dom-deviceorientationevent-requestpermission> |