如何获取当前的定位信息-uniapp

735 阅读1分钟

参考:uniapp官网API定位

前言:在项目开发中,例如在h5页面中,嵌入第三方地图页面,此时有个定位功能无法定位,往往需要获取定位信息协助实现定位功能。

前提准备:获取定位信息,一定要在https的协议下,其次应用设置要允许获取定位,否则会出现获取定位失败的情况。

1、使用官网提供的API定位

mounted() {
  this.getUniPositions();
},
methods: {
  getUniPositions() {
    uni.getLocation({
        success: function(res) {
          // 获取定位成功,res对象包含了定位信息
          console.log('获取定位成功',res.latitude, res.longitude, res.address); // 纬度
          // console.log(res.longitude); // 经度
          // console.log(res.address); // 地址信息
          // 获取到定位信息
          var latitude = res.latitude;
          var longitude = res.longitude;
          // 处理定位信息
          console.log('获取定位信息-latitude', latitude, 'longitude', longitude);
          let frame = document.querySelectorAll('iframe')[0]?.contentWindow
          frame.postMessage({x:longitude , y:latitude}, "*")
        },
        fail: function(err) {
        // 获取定位失败,err对象包含了错误信息
        console.log('获取定位失败',err);
        }
    });
  },
}

2、使用JS中Window对象Navigator geolocation 属性

mounted() {
  this.getPosition();
},
methods: {
  getPosition() {
    navigator.geolocation.getCurrentPosition(function(position) {
      // 获取到定位信息
      var latitude = position.coords.latitude;
      var longitude = position.coords.longitude;
      // 处理定位信息
      console.log('定位信息-latitude', latitude, 'longitude', longitude);
      let frame = document.querySelectorAll('iframe')[0]?.contentWindow
      frame.postMessage({x:longitude , y:latitude}, "*")
    }, function(error) {
    // 定位失败
      console.log('定位失败', error);
    });
  },
}