Kompass
Ruft die Richtung, die das Gerät verweist.
Methoden
- compass.getCurrentHeading
- compass.watchHeading
- compass.clearWatch
- compass.watchHeadingFilter (veraltet)
- compass.clearWatchFilter (veraltet)
Argumente
Zugriff auf die Funktion
Ab Version 3.0 implementiert Cordova Geräteebene APIs als Plugins. Verwenden Sie der CLI plugin Befehl, beschrieben in der Command-Line Interface, hinzufügen oder Entfernen dieses Feature für ein Projekt:
$ 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
Diese Befehle gelten für alle Zielplattformen, aber die unten beschriebenen Plattform-spezifische Konfigurationseinstellungen ändern:
-
Android (in
app/res/xml/config.xml)<feature name="Compass"> <param name="android-package" value="org.apache.cordova.CompassListener" /> </feature> -
iOS (in
config.xml)<feature name="Compass"> <param name="ios-package" value="CDVLocation" /> </feature> -
Windows Phone (in
Properties/WPAppManifest.xml)<Capabilities> <Capability Name="ID_CAP_SENSORS" /> </Capabilities>
Einige Plattformen können dieses Feature unterstützen, ohne dass eine besondere Konfiguration. Eine Übersicht finden Sie unter Plattform-Support.
compass.getCurrentHeading
Erhalten Sie aktuelle Kompassrichtung.
navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);
Beschreibung
Der Kompass ist ein Sensor, der erkennt die Richtung oder Position, dass das Gerät in der Regel von der Oberseite des Geräts gezeigt wird. Er misst die Überschrift im Grad von 0 bis 359.99, wobei 0 Norden ist.
Die Kompassrichtung Informationen über zurückgegeben ein CompassHeading -Objekt unter Verwendung der compassSuccess Callback-Funktion.
Unterstützte Plattformen
- Android
- BlackBerry 10
- iOS
- Tizen
- Windows Phone 7 und 8 (falls verfügbar in Hardware)
- Windows 8
Kleines Beispiel
function onSuccess(heading) {
alert('Heading: ' + heading.magneticHeading);
};
function onError(error) {
alert('CompassError: ' + error.code);
};
navigator.compass.getCurrentHeading(onSuccess, onError);
Vollständiges Beispiel
<!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
Erhalten Sie in regelmäßigen Abständen die Kompassrichtung in Grad.
var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);
Beschreibung
Der Kompass ist ein Sensor, der erkennt die Richtung oder Position, dass das Gerät angezeigt wird. Er misst die Überschrift im Grad von 0 bis 359.99.
Die compass.watchHeading Ruft das Gerät aktuelle Rubrik in regelmäßigen Abständen. Jedes Mal, die Überschrift abgerufen wird, die headingSuccess Callback-Funktion wird ausgeführt. Gibt das Intervall in Millisekunden über den frequency -Parameter in der compassOptions Objekt.
Die zurückgegebenen Uhren-ID verweist das Kompass-Uhr-Intervall. Die Uhr, die ID kann verwendet werden, mit compass.clearWatch , beobachten den Kompass zu stoppen.
Unterstützte Plattformen
- Android
- BlackBerry 10
- iOS
- Tizen
- Windows Phone 7 und 8 (falls verfügbar in Hardware)
- Windows 8
Kleines Beispiel
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);
Vollständiges Beispiel
<!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>
iOS Macken
In iOS compass.watchHeading erhalten Sie auch aktuelle Position des Geräts, wenn es um eine angegebene Anzahl von Grad ändert. Jedes Mal die Überschrift-Änderungen, um die angegebene Anzahl von Grad oder mehr, die headingSuccess Rückruffunktion ausgeführt wird. Geben Sie den Grad der Veränderung über die filter Parameter in der compassOptions Objekt. Deaktivieren Sie die Uhr wie üblich durch Übermittlung der zurückgegebenen Uhren-ID auf compass.clearWatch . Diese Funktion ersetzt die bisher getrennten, nur iOS- watchHeadingFilter und clearWatchFilter Funktionen, die in Version 1.6 entfernt wurden.
Nur ein watchHeading kann in der Tat auf einmal in iOS sein. Wenn ein watchHeading benutzt einen Filter Aufrufen von getCurrentHeading oder watchHeading verwendet den Wert des vorhandenen Filters Überschrift Änderungen festlegen. Überschrift Veränderungen beobachten, mit einem Filter ist effizienter als mit Zeitintervallen.
compass.clearWatch
Stoppen Sie, beobachten den Kompass auf der Uhr-ID-Parameter verweist.
navigator.compass.clearWatch(watchID);
-
WatchID: die ID zurückgegebener
compass.watchHeading.
Unterstützte Plattformen
- Android
- BlackBerry 10
- iOS
- Tizen
- Windows Phone 7 und 8 (falls verfügbar in Hardware)
- Windows 8
Kleines Beispiel
var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
// ... later on ...
navigator.compass.clearWatch(watchID);
Vollständiges Beispiel
<!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
Nicht mehr ab 1.6 unterstützt, finden Sie unter compass.watchHeading für die entsprechende Funktionalität.
compass.clearWatchFilter
Nicht mehr unterstützt ab 1.6. Finden Sie untercompass.clearWatch.
compassSuccess
OnSuccess-Callback-Funktion, die die Kompassrichtung Informationen über ein compassHeading Objekt.
function(heading) {
// Do something
}
Parameter
- Rubrik: die Überschrift-Informationen. (CompassHeading)
Beispiel
function onSuccess(heading) {
alert('Heading: ' + heading.magneticHeading);
};
compassError
OnError Callback-Funktion für Kompass-Funktionen.
Beispiel
function(CompassError) {
// Handle the error
}
compassOptions
Ein optionaler Parameter, um das Abrufen des Kompasses anzupassen.
Optionen
Häufigkeit: wie oft die Kompassrichtung in Millisekunden abrufen. (Anzahl) (Default: 100)
Filter: die Veränderung der Grad benötigt, um einen WatchHeading Erfolg Rückruf initiiert. (Anzahl)
Android Macken
-
filterwird nicht unterstützt.
Tizen Macken
-
filterwird nicht unterstützt.
Windows Phone 7 und 8 Macken
-
filterwird nicht unterstützt.
compassHeading
Ein CompassHeading Objekt wird an die CompassSuccess Callback-Funktion zurückgegeben.
Eigenschaften
MagneticHeading: die Überschrift in Grad von 0-359.99 zu einem einzigen Zeitpunkt. (Anzahl)
TrueHeading: die Überschrift im Verhältnis zu den geografischen Nordpol in Grad 0-359.99 zu einem einzigen Zeitpunkt. Ein negativer Wert bedeutet, dass die wahre Überschrift nicht bestimmt werden kann. (Anzahl)
HeadingAccuracy: die Abweichung in Grad zwischen der gemeldeten Überschrift und die wahre Richtung. (Anzahl)
Timestamp: die Zeit, an dem dieser Rubrik bestimmt war. (Millisekunden)
Beschreibung
Das CompassHeading Objekt wird zurückgegeben, um die compassSuccess Callback-Funktion.
Android Macken
trueHeadingwird nicht unterstützt, aber meldet den gleichen Wert wiemagneticHeadingheadingAccuracyist immer 0 da es keinen Unterschied zwischen gibt dermagneticHeadingundtrueHeading.
iOS Macken
trueHeadingis only returned when location services are enabled vianavigator.geolocation.watchLocation()Für iOS 4 Geräte und oben, Rubrik Faktoren in die aktuelle Ausrichtung des Geräts, nicht in Bezug auf die absolute Position für apps unterstützt, das die Orientierung.
CompassError
A CompassError Objekt wird zurückgegeben, um die compassError Callback-Funktion, wenn ein Fehler auftritt.
Eigenschaften
- Code: einer der vordefinierten Fehlercodes aufgeführt.
Konstanten
CompassError.COMPASS_INTERNAL_ERRCompassError.COMPASS_NOT_SUPPORTED
Beschreibung
Wenn ein Fehler auftritt, das CompassError -Objekt wird als Parameter übergeben ein compassError Callback-Funktion.