162 lines
5.9 KiB
Markdown
162 lines
5.9 KiB
Markdown
|
<!---
|
||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||
|
or more contributor license agreements. See the NOTICE file
|
||
|
distributed with this work for additional information
|
||
|
regarding copyright ownership. The ASF licenses this file
|
||
|
to you under the Apache License, Version 2.0 (the
|
||
|
"License"); you may not use this file except in compliance
|
||
|
with the License. You may obtain a copy of the License at
|
||
|
|
||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
||
|
Unless required by applicable law or agreed to in writing,
|
||
|
software distributed under the License is distributed on an
|
||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
|
KIND, either express or implied. See the License for the
|
||
|
specific language governing permissions and limitations
|
||
|
under the License.
|
||
|
-->
|
||
|
|
||
|
# cordova-plugin-device-motion
|
||
|
|
||
|
Questo plugin consente di accedere all'accelerometro del dispositivo. L'accelerometro è un sensore di movimento che rileva il cambiamento (*delta*) nel movimento relativo l'orientamento corrente del dispositivo, in tre dimensioni lungo l'asse *x*, *y*e *z* .
|
||
|
|
||
|
L'accesso avviene tramite un oggetto globale `navigator.accelerometer`.
|
||
|
|
||
|
Anche se l'oggetto è associato con ambito globale del `navigator`, non è disponibile fino a dopo l'evento `deviceready`.
|
||
|
|
||
|
document.addEventListener("deviceready", onDeviceReady, false);
|
||
|
function onDeviceReady() {
|
||
|
console.log(navigator.accelerometer);
|
||
|
}
|
||
|
|
||
|
|
||
|
## Installazione
|
||
|
|
||
|
cordova plugin add cordova-plugin-device-motion
|
||
|
|
||
|
|
||
|
## Piattaforme supportate
|
||
|
|
||
|
* Amazon fuoco OS
|
||
|
* Android
|
||
|
* BlackBerry 10
|
||
|
* Browser
|
||
|
* Firefox OS
|
||
|
* iOS
|
||
|
* Tizen
|
||
|
* Windows Phone 8
|
||
|
* Windows
|
||
|
|
||
|
## Metodi
|
||
|
|
||
|
* navigator.accelerometer.getCurrentAcceleration
|
||
|
* navigator.accelerometer.watchAcceleration
|
||
|
* navigator.accelerometer.clearWatch
|
||
|
|
||
|
## Oggetti
|
||
|
|
||
|
* Accelerazione
|
||
|
|
||
|
## navigator.accelerometer.getCurrentAcceleration
|
||
|
|
||
|
Ottenere l'attuale accelerazione lungo gli assi *x*, *y* e *z*.
|
||
|
|
||
|
I valori di accelerazione vengono restituiti alla funzione di callback `accelerometerSuccess`.
|
||
|
|
||
|
navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);
|
||
|
|
||
|
|
||
|
### Esempio
|
||
|
|
||
|
function onSuccess(acceleration) {
|
||
|
alert('Acceleration X: ' + acceleration.x + '\n' +
|
||
|
'Acceleration Y: ' + acceleration.y + '\n' +
|
||
|
'Acceleration Z: ' + acceleration.z + '\n' +
|
||
|
'Timestamp: ' + acceleration.timestamp + '\n');
|
||
|
};
|
||
|
|
||
|
function onError() {
|
||
|
alert('onError!');
|
||
|
};
|
||
|
|
||
|
navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
|
||
|
|
||
|
|
||
|
### Stranezze Browser
|
||
|
|
||
|
I valori per X, Y, movimento Z sono tutti generati casualmente in ordine per simulare l'accelerometro.
|
||
|
|
||
|
### iOS stranezze
|
||
|
|
||
|
* iOS non riconosce il concetto di ottenere l'accelerazione della corrente in un dato punto.
|
||
|
|
||
|
* Si deve guardare l'accelerazione e acquisire i dati di intervalli di tempo dato.
|
||
|
|
||
|
* Così, il `getCurrentAcceleration` funzione restituisce l'ultimo valore segnalato da un `watchAccelerometer` chiamare.
|
||
|
|
||
|
## navigator.accelerometer.watchAcceleration
|
||
|
|
||
|
Recupera corrente del dispositivo `Acceleration` a intervalli regolari, l'esecuzione della funzione di callback `accelerometerSuccess` ogni volta. Specificare l'intervallo in millisecondi tramite parametro `frequency` dell'oggetto `acceleratorOptions`.
|
||
|
|
||
|
L'orologio restituito ID fa riferimento intervallo orologio di accelerometro e può essere utilizzato con `navigator.accelerometer.clearWatch` a smettere di guardare l'accelerometro.
|
||
|
|
||
|
var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess,
|
||
|
accelerometerError,
|
||
|
accelerometerOptions);
|
||
|
|
||
|
|
||
|
* **accelerometerOptions**: Un oggetto con le seguenti chiavi opzionali:
|
||
|
* **periodo**: periodo richiesto di chiamate a accelerometerSuccess con i dati di accelerazione in millisecondi. *(Numero)* (Default: 10000)
|
||
|
|
||
|
### Esempio
|
||
|
|
||
|
function onSuccess(acceleration) {
|
||
|
alert('Acceleration X: ' + acceleration.x + '\n' +
|
||
|
'Acceleration Y: ' + acceleration.y + '\n' +
|
||
|
'Acceleration Z: ' + acceleration.z + '\n' +
|
||
|
'Timestamp: ' + acceleration.timestamp + '\n');
|
||
|
};
|
||
|
|
||
|
function onError() {
|
||
|
alert('onError!');
|
||
|
};
|
||
|
|
||
|
var options = { frequency: 3000 }; // Update every 3 seconds
|
||
|
|
||
|
var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
|
||
|
|
||
|
|
||
|
### iOS stranezze
|
||
|
|
||
|
L'API chiama la funzione di callback di successo nell'intervallo richiesto, ma limita la gamma di richieste alla periferica tra 40ms e 1000ms. Ad esempio, se si richiede un intervallo di 3 secondi, (3000ms), l'API richiede i dati dal dispositivo ogni secondo, ma esegue solo il callback di successo ogni 3 secondi.
|
||
|
|
||
|
## navigator.accelerometer.clearWatch
|
||
|
|
||
|
Smettere di guardare l' `Acceleration` a cui fa riferimento il parametro `watchID`.
|
||
|
|
||
|
navigator.accelerometer.clearWatch(watchID);
|
||
|
|
||
|
|
||
|
* **watchID**: l'ID restituito da`navigator.accelerometer.watchAcceleration`.
|
||
|
|
||
|
### Esempio
|
||
|
|
||
|
var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
|
||
|
|
||
|
// ... later on ...
|
||
|
|
||
|
navigator.accelerometer.clearWatch(watchID);
|
||
|
|
||
|
|
||
|
## Accelerazione
|
||
|
|
||
|
Contiene i dati dell'`Accelerometer` catturati in un punto specifico nel tempo. I valori di accelerazione includono l'effetto della gravità (9,81 m/s ^ 2), in modo che quando un dispositivo si trova piatta e rivolto in su, *x*, *y*, e *z* valori restituiti dovrebbero essere ``, `` e `9,81`.
|
||
|
|
||
|
### Proprietà
|
||
|
|
||
|
* **x**: quantità di accelerazione sull'asse x. (in m/s ^ 2) *(Numero)*
|
||
|
* **y**: quantità di accelerazione sull'asse y. (in m/s ^ 2) *(Numero)*
|
||
|
* **z**: quantità di accelerazione sull'asse z. (in m/s ^ 2) *(Numero)*
|
||
|
* **timestamp**: creazione timestamp in millisecondi. *(DOMTimeStamp)*
|