DeviceOrientationEvent: requestPermission() statische Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die requestPermission()-statische Methode des DeviceOrientationEvent-Interfaces fordert die Erlaubnis des Nutzers an, auf die Geräteorientierungsdaten 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 transiente Aktivierung, was bedeutet, dass sie durch ein UI-Ereignis wie einen Button-Klick ausgelöst werden muss.
Syntax
DeviceOrientationEvent.requestPermission()
DeviceOrientationEvent.requestPermission(absolute)
Parameter
absoluteOptional-
Ein boolescher Wert, der angibt, ob absolute Orientierungsdaten benötigt werden. Wenn
true, umfasst die Erlaubnisanfrage auch den Magnetometersensor. Standardmäßig auffalse.
Rückgabewert
Ein Promise, der mit einem String aufgelöst wird, der entweder "granted" oder "denied" ist.
Ausnahmen
Das zurückgegebene Promise lehnt die folgenden Ausnahmen ab:
NotAllowedErrorDOMException-
Der Erlaubnisstatus 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 dieses Feature funktioniert.
Beispiele
>Anfordern der Geräteorientierungserlaubnis 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 absoluten Orientierungserlaubnis
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 den 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
| Specification |
|---|
| Device Orientation and Motion> # dom-deviceorientationevent-requestpermission> |