- From: gmandyam via GitHub <sysbot+gh@w3.org>
- Date: Thu, 11 Jun 2015 15:42:50 +0000
- To: public-device-apis@w3.org
Take the one-time location request example from the existing spec
(where a fresh location is required) and show how the Sensor API
applies. (Yes - I know this is not a Promise-based API, but it can be
adapted to be Promise-based). Note that there are no DOM
dependenices in the example as far as I can tell.
<code>
// Request a position. We only accept cached positions whose age is
not
// greater than 10 minutes. If the user agent does not have a
fresh
// enough cached position object, it will immediately invoke the
error
// callback.
navigator.geolocation.getCurrentPosition(successCallback,
errorCallback,
{maximumAge:600000,
timeout:0});
function successCallback(position) {
// By using the 'maximumAge' option above, the position
// object is guaranteed to be at most 10 minutes old.
// By using a 'timeout' of 0 milliseconds, if there is
// no suitable cached position available, the user agent
// will asynchronously invoke the error callback with code
// TIMEOUT and will not initiate a new position
// acquisition process.
}
function errorCallback(error) {
switch(error.code) {
case error.TIMEOUT:
// Quick fallback when no suitable cached position exists.
doFallback();
// Acquire a new position object.
navigator.geolocation.getCurrentPosition(successCallback,
errorCallback);
break;
case ... // treat the other error cases.
};
}
function doFallback() {
// No fresh enough cached position available.
// Fallback to a default position.
}
</code>
--
GitHub Notif of comment by gmandyam
See https://github.com/w3c/sensors/issues/21#issuecomment-111177707
Received on Thursday, 11 June 2015 15:42:56 UTC