Boussole

Boussole

Obtient la direction dans laquelle pointe l'appareil.

Méthodes

Arguments

Accéder à la fonctionnalité

Depuis la version 3.0, Cordova implémente les APIs au niveau de l'appareil comme des plugins. Utilisez le plugin d'interface en ligne de commande, décrite dans l'Interface de ligne de commande, pour ajouter ou supprimer cette fonctionnalité pour un projet :

    $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-orientation.git
    $ cordova plugin rm org.apache.cordova.core.device-orientation

Ces commandes s'appliquent à toutes les plates-formes ciblées, mais modifient les paramètres de configuration spécifiques aux plateformes décrites ci-dessous :

Certaines plates-formes peuvent prendre en charge cette fonctionnalité sans nécessiter aucune configuration spéciale. Voir plate-forme prise en charge pour une vue d'ensemble.


compass.getCurrentHeading

Téléchargez la direction courante de la boussole.

navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);

Description

La boussole est un capteur qui détecte la direction ou la position vers laquelle l'appareil pointe, généralement depuis le haut de l'appareil. Il mesure la direction en degrés de 0 à 359.99, où 0 indique le Nord.

Les informations de la boussole sont retournées via un objet CompassHeading utilisant la fonction de callback compassSuccess.

Plates-formes prises en charge

Petit exemple

function onSuccess(heading) {
    alert('Heading: ' + heading.magneticHeading);
};

function onError(error) {
    alert('CompassError: ' + error.code);
};

navigator.compass.getCurrentHeading(onSuccess, onError);

Exemple complet

<!DOCTYPE html>
<html>
  <head>
    <title>Compass Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        navigator.compass.getCurrentHeading(onSuccess, onError);
    }

    // onSuccess: Get the current heading
    //
    function onSuccess(heading) {
        alert('Heading: ' + heading.magneticHeading);
    }

    // onError: Failed to get the heading
    //
    function onError(compassError) {
        alert('Compass Error: ' + compassError.code);
    }

    </script>
  </head>
  <body>
    <h1>Example</h1>
    <p>getCurrentHeading</p>
  </body>
</html>

compass.watchHeading

À intervalle régulier, obtenez la direction de la boussole en degrés.

var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);

Description

La boussole est un capteur qui détecte la direction ou la position vers laquelle l'appareil pointe. Il mesure la direction en degrés de 0 à 359.99.

Le compass.watchHeading obtient la direction actuelle de l'appareil à intervalle régulier. Chaque fois que la direction est récupérée, la fonction de callback headingSuccess est exécutée. Spécifiez l'intervalle, en millisecondes, via le paramètre frequency dans l'objet compassOptions.

L'ID de surveillance retourné référence l'intervalle de surveillance de la boussole. L'ID de surveillance peut être utilisé avec compass.clearWatch pour arrêter de surveiller la boussole.

Plates-formes prises en charge

Petit exemple

function onSuccess(heading) {
    var element = document.getElementById('heading');
    element.innerHTML = 'Heading: ' + heading.magneticHeading;
};

function onError(compassError) {
    alert('Compass error: ' + compassError.code);
};

var options = {
    frequency: 3000
}; // Update every 3 seconds

var watchID = navigator.compass.watchHeading(onSuccess, onError, options);

Exemple complet

<!DOCTYPE html>
<html>
  <head>
    <title>Compass Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // The watch id references the current `watchHeading`
    var watchID = null;

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        startWatch();
    }

    // Start watching the compass
    //
    function startWatch() {

        // Update compass every 3 seconds
        var options = { frequency: 3000 };

        watchID = navigator.compass.watchHeading(onSuccess, onError, options);
    }

    // Stop watching the compass
    //
    function stopWatch() {
        if (watchID) {
            navigator.compass.clearWatch(watchID);
            watchID = null;
        }
    }

    // onSuccess: Get the current heading
    //
    function onSuccess(heading) {
        var element = document.getElementById('heading');
        element.innerHTML = 'Heading: ' + heading.magneticHeading;
    }

    // onError: Failed to get the heading
    //
    function onError(compassError) {
        alert('Compass error: ' + compassError.code);
    }

    </script>
  </head>
  <body>
    <div id="heading">Waiting for heading...</div>
    <button onclick="startWatch();">Start Watching</button>
    <button onclick="stopWatch();">Stop Watching</button>
  </body>
</html>

Spécificités iOS

Dans iOS compass.watchHeading peut également récupérer la direction actuelle de l'appareil lorsqu'elle change d'un certain nombre de degrés. Chaque fois que la direction change du nombre de degrés spécifiés ou plus, la fonction de callback headingSuccess s'exécute. Spécifier les degrés de changement via le paramètre filter dans l'objet compassOptions. Désactivez la boussole comme d'habitude en passant l'ID de surveillance retourné à compass.clearWatch . Cette fonctionnalité remplace les fonctionnalités précédentes, uniquement sur iOS, watchHeadingFilter et clearWatchFilter, qui ont été supprimées dans la version 1.6.

Seulement un watchHeading peut être utilisé à un moment donné sur iOS. Si un watchHeading utilise un filtre, un appel à getCurrentHeading ou watchHeading utilise la valeur existante de filtre pour spécifier des changements de direction. Surveiller les changements de position avec un filtre est plus efficace qu'avec des intervalles de temps.


compass.clearWatch

Arrêter de regarder la boussole référencée par le paramètre ID de montre.

navigator.compass.clearWatch(watchID);

Plates-formes prises en charge

Petit exemple

var watchID = navigator.compass.watchHeading(onSuccess, onError, options);

// ... later on ...

navigator.compass.clearWatch(watchID);

Exemple complet

<!DOCTYPE html>
<html>
  <head>
    <title>Compass Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // The watch id references the current `watchHeading`
    var watchID = null;

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        startWatch();
    }

    // Start watching the compass
    //
    function startWatch() {

        // Update compass every 3 seconds
        var options = { frequency: 3000 };

        watchID = navigator.compass.watchHeading(onSuccess, onError, options);
    }

    // Stop watching the compass
    //
    function stopWatch() {
        if (watchID) {
            navigator.compass.clearWatch(watchID);
            watchID = null;
        }
    }

    // onSuccess: Get the current heading
    //
    function onSuccess(heading) {
        var element = document.getElementById('heading');
        element.innerHTML = 'Heading: ' + heading.magneticHeading;
    }

    // onError: Failed to get the heading
    //
    function onError(compassError) {
        alert('Compass error: ' + compassError.code);
    }

    </script>
  </head>
  <body>
    <div id="heading">Waiting for heading...</div>
    <button onclick="startWatch();">Start Watching</button>
    <button onclick="stopWatch();">Stop Watching</button>
  </body>
</html>

compass.watchHeadingFilter

N'est plus supporté à partir de 1.6, voir compass.watchHeading pour une fonctionnalité équivalente.


compass.clearWatchFilter

N'est plus supporté à partir de 1.6. Voir compass.clearWatch.


compassSuccess

fonction de callback onSuccess qui fournit les informations de la boussole via un objet compassHeading.

function(heading) {
    // Do something
}

Paramètres

Exemple

function onSuccess(heading) {
    alert('Heading: ' + heading.magneticHeading);
};

compassError

fonction de callback onError pour les fonctions de la boussole.

Exemple

function(CompassError) {
    // Handle the error
}

compassOptions

Un paramètre optionnel pour personnaliser la récupération de la boussole.

Options

Spécificités Android


Spécificités Tizen

Spécificités Windows Phone 7 et 8


compassHeading

Un objet CompassHeading est retourné à la fonction de callback compassSuccess.

Propriétés

Description

L'objet CompassHeading est retourné à la fonction de callback compassSuccess.

Spécificités Android

Spécificités iOS


CompassError

Un objet CompassError est retourné à la fonction de callback compassError lorsqu'une erreur survient.

Propriétés

Constantes

Description

Lorsqu'une erreur se produit, l'objet CompassError est passé en paramètre de la fonction de callback compassError.