ask to your users their coordinates, and wrap them into a Promise
yarn add vue-browser-geolocation
or
npm install vue-browser-geolocation
in your main.js
import VueGeolocation from 'vue-browser-geolocation';
Vue.use(VueGeolocation);
Inside a Vue Component
this.$getLocation(options)
.then(coordinates => {
console.log(coordinates);
});
Will prompt a Geolocation Request
or to watch a location
this.$watchLocation(options)
.then(coordinates => {
console.log(coordinates);
})
you can clear the watcher
this.$clearLocationWatch(watchID)
please refer to the Geolocation docs to reference how to get a watchID
See PositionOptions
this.$getLocation({
enableHighAccuracy: bool, //defaults to false
timeout: Infinity, //defaults to Infinity
maximumAge: int //defaults to 0
})
.then(coordinates => {
console.log(coordinates);
});
If you need to setup automated testing in your application, and you need to force failure of geolocation to test how your application behaves, you can pass a second argument (forceReject) to this.$getGelocation and this.$watchLocation:
this.$getLocation(positionOptions, forceReject)
this.$watchLocation(positionOptions, forceReject)
if the parameter is true
, the promise will be rejected with a special error message.