uniapp 在h5和小程序上使用高德获取用户城市位置

import amap from '@/static/lib/amap-wx.js'; // 只能用于小程序


      const amap_wx_key = '<微信key>';
      const amap_h5_key = '<Web服务key>';

      let _key = '';
      // #ifdef H5
      _key = amap_h5_key

      uni.getLocation({
        success: function(pos) {
          uni.request({
            method: 'GET',
            url: 'https://restapi.amap.com/v3/geocode/regeo',
            data: {
              key: _key,
              location: `${pos.longitude},${pos.latitude}`,
              poitype: '城市',
            },
            success: ({
              data
            }) => {
              const city = data.regeocode.addressComponent.city
              commit('setCity', city)
              res(city);
            },
            fail: r => {
              console.log(r);
            }
          });
        }
      });
      // #endif

      // #ifdef MP-WEIXIN
      _key = amap_wx_key
      this.amapPlugin = new amap.AMapWX({
        key: _key
      });
      this.amapPlugin.getRegeo({
        success: data => {
          const city = data[0].regeocodeData.addressComponent.city;
          commit('setCity', city)
          res(city);
        },
        fail(e) {
          console.error(e);
          uni.showModal({
            title: e.errCode,
            content: e.errMsg,
          })
        }
      });
      // #endif

猜你喜欢

转载自www.cnblogs.com/ajanuw/p/13365054.html
今日推荐