Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

AbsoluteOrientationSensor

Disponibilité limitée

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

Contexte sécurisé: Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.

L'interface AbsoluteOrientationSensor des APIs Sensor décrit l'orientation physique de l'appareil par rapport au système de coordonnées de référence de la Terre.

Pour utiliser ce capteur, l'utilisateur·ice doit accorder l'autorisation aux capteurs de l'appareil 'accelerometer', 'gyroscope' et 'magnetometer' avec l'API Permissions.

Cette fonctionnalité peut être bloquée par une Politique de Permissions définie sur votre serveur.

EventTarget Sensor OrientationSensor AbsoluteOrientationSensor

Constructor

AbsoluteOrientationSensor()

Crée un nouvel objet AbsoluteOrientationSensor.

Propriétés d'instance

Aucune propriété spécifique ; hérite des propriétés de ses ancêtres OrientationSensor et Sensor.

Méthodes d'instance

Aucune méthode spécifique ; hérite des méthodes de ses ancêtres OrientationSensor et Sensor.

Évènements

Aucun évènement spécifique ; hérite des méthodes de son ancêtre, Sensor.

Exemples

Exemple simple

L'exemple suivant, qui est vaguement basé sur la démonstration de Orientation Phone d'Intel (angl.), instancie un AbsoluteOrientationSensor avec une fréquence de 60 fois par seconde. À chaque lecture, il utilise OrientationSensor.quaternion pour faire pivoter un modèle visuel d'un téléphone.

js
const options = { frequency: 60, referenceFrame: "device" };
const capteur = new AbsoluteOrientationSensor(options);

capteur.addEventListener("reading", () => {
  // le modèle est un objet Three.js instancié ailleurs.
  modele.quaternion.fromArray(capteur.quaternion).inverse();
});
capteur.addEventListener("error", (event) => {
  if (event.error.name === "NotReadableError") {
    console.log("Le capteur n'est pas disponible.");
  }
});
capteur.start();

Exemple de permissions

L'utilisation des capteurs d'orientation nécessite de demander des autorisations pour plusieurs capteurs de l'appareil. Comme l'interface Permissions utilise des promesses, une bonne façon de demander des autorisations est d'utiliser Promise.all.

js
const capteur = new AbsoluteOrientationSensor();
Promise.all([
  navigator.permissions.query({ name: "accelerometer" }),
  navigator.permissions.query({ name: "magnetometer" }),
  navigator.permissions.query({ name: "gyroscope" }),
]).then((resultats) => {
  if (resultats.every((resultat) => resultat.state === "granted")) {
    capteur.start();
    // …
  } else {
    console.log("Pas d'autorisations pour utiliser AbsoluteOrientationSensor.");
  }
});

Spécifications

Spécification
Orientation Sensor
# absoluteorientationsensor-interface

Compatibilité des navigateurs