微信小程序(三)

今天给大家讲一下小程序里面的定位,获取到用户所在城市,相信很多地方都用的到,已经很详细的把代码注释了,如

果又不懂的可以评论我,看到的话第一时间回复。

const app = getApp()
Page({
  data: {
  
    
  },
  //事件处理函数
  onLoad: function () {
    var that = this;//获取当前指向
    wx.showLoading({});//加载效果
    wx.getStorage({//判断当前是否有本地存储,如果有执行success里的函数,否则执行getLocation方法
      key: 'city',
      success: function (res) {
        var citycode = res.data.city;
        that.setData({
           currentCity: citycode
        });
        that.activitycontent();
      },
      fail: function () {
        that.getLocation();
      }
    })
  },
  getLocation: function () {//获取到经纬度
    var page = this
    wx.getLocation({
      type: 'wgs84',
      success: function (res) {
        var latitude = res.latitude
        var longitude = res.longitude
        page.loadCity(longitude, latitude)//已形参的方式传过去,执行loadCity方法
      },
      fail: function () {
        wx.setStorage({
          key: "city",
          data: { 'city': '获取定位失败' }
        })
        page.setData({ currentCity: "获取定位失败" });
        page.activitycontent();
      }
    })
  },
  loadCity: function (longitude, latitude) {//请求第三方服务器,转百度api
    var page = this;
    wx.request({
      url: '后台接口',
      data: { 'latitude': latitude, 'longitude': longitude, 'ak': '自己的ak' },
      header: {
        'Content-Type': 'application/json'
      },
      success: function (res) {
        var city = res.data.result.addressComponent.city;//拿到获取到的城市
        var city = city.replace('市', ' ');//我这边不需要市,所以就用字符串替换成 ‘ ’空了
        page.setData({
          currentCity: city
        });
        wx.setStorage({
          key: "city",
          data: { 'city': city }
        })
        page.activitycontent();
      },
      fail: function () {
        page.setData({ currentCity: "获取定位失败" });
        page.activitycontent();
      },
    })
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})

猜你喜欢

转载自blog.csdn.net/xiaohu12685/article/details/80172836
今日推荐