美文网首页小程序
小程序总结(五)-定位功能

小程序总结(五)-定位功能

作者: 自律财富自由 | 来源:发表于2018-08-13 11:07 被阅读0次

今天在做一个定位功能,需要用户授权。
如果用户没有授权定位,就显示授权询问页面(这其实是调用wx.openSetting())这个接口。
如果用户允许了授权定位,就调用wx.getLocation()接口获取经纬度,最后根据获取的这个经纬度,把数据传递给后台,获取当前城市和周边城市数据,再用户点击位置按钮时,跳转至城市显示页面。

具体代码如下:

//wxml
<view class='search-place' bindtap="openAuthLocation">
    <view class='place'>{{cityName}}</view>
    <image class='triangle' src='/images/down-triangle.png'></image>
 </view>
//js
//因为是一个组件,所以使用created钩子函数
created: function() {
    //获取地理位置的经纬度
    this.getLocation()
},

打开的询问页面是这样的

positoin.png
methods: {
      getLocation: function () {
          wx.getLocation({
              type: 'wgs84', //表示使用GPS定位
              success: (res) => {
                  console.log("定位成功 = ", res)
                  this.setData({
                      latitude: res.latitude,
                      longitude: res.longitude
                  })
                  调用后台接口获取数据
                  this.getHomieData()
              },
              //表示用户没有开启授权
              fail: (res) => {
                  this.setData({
                      errMsg: res.errMsg
                  })
                  console.log(this.data)
                  wx.showToast({
                      title: '已取消定位服务,点击地址,可授权开启定位服务',
                      icon: 'none'
                  })
              }
          })
      },
    openAuthLocation: function () {
        console.log("openAuthLocation = ", this.data)
        if (!this.data.cityName) {
              //打开授权页面
              wx.openSetting({
                  success: (res) => {
                      let data = res.authSetting
                      if (data['scope.userLocation']) {
                          this.getLocation()
                      }
                  }
              })
        } else {
            //跳转至城市显示页面
            wx.navigateTo({
                url: '/entries/posPlace/posPlace',
            })
        }
    },
      getHomieData: function() {
          wx.request({
              url: '。。。。',
              method: 'POST',
              data: {
                  city: this.data.cityName,
                  lng: this.data.longitude,
                  lat: this.data.latitude
              },
              success: (res) => {
                  this.setData({
                      cityName: res.data.location.city_name
                  })
                  wx.setStorageSync('positionInfo', res)
              }
          })
      }
  }

城市显示页面如下

city.png

当我点击下面周边城市的时候,回回到显示当前城市的页面,一开始我使用wx.navigateBack({url: ''}),虽然可以返回去,但数据没有更新。
那我就想,用wx.navigateTo({url: ''})传参的形式,然后更新数据,发现这里根本就跳转不到上一页(具体原因不明,有知道的还请指教)。
接着,我搜文档,又试试wx.redirectTo(),这个跟wx.navigateTo({url: ''})是一样的效果,页跳不回上一页。
最后,使用wx.reLaunch(),页面返回去了,数据也更新了。

相关文章

  • 小程序总结(五)-定位功能

    今天在做一个定位功能,需要用户授权。如果用户没有授权定位,就显示授权询问页面(这其实是调用wx.openSetti...

  • 微信小程序 - 定位功能

    一月9号微信小程序的推出,相信应该会给大家带来了这样或者那样的感受,我就不过多的表达我对小程序的看法了,我已经开始...

  • day5 作业

    一、基础 1、读程序,总结程序的功能: 答案:分解程序:功能:2的20次方。 2、读程序,总结程序的功能: 答案:...

  • April 18th_day04_homework

    easy question1.读程序总结程序的功能: question2.读程序总结程序的功能: question...

  • iOS 地图

    iOS 地图 基础 一 :定位 在 iOS 程序开发中 地图功能是普遍存在的,刚好最近都在研究地图的功能。总结一下...

  • 微信小程序后台持续定位功能使用详解

    小程序后台持续定位功能和联系定位的接口从上到下分别是1.wx.onLocationChange//监听位置实时变化...

  • 小程序检测是否有定位功能

    var toscanCode = function (latitude, longitude) { }) } v...

  • uni 地图回到缩放scale

    uni 小程序地图map缩放重置 uni小程序中,涉及地图一类,基本都会涉及定位(即准心一样icon)功能为:从地...

  • 微信小程序更新的功能中有LBS定位功能

    微信小程序更新的功能中就有LBS定位功能,你可以通过这些小程序发现附近的服装店以及餐饮和美食,这样便能够让你的生活...

  • day5-作业

    一.基础 读程序,总结程序的功能: 读程序,总结程序的功能: 编程实现(for和while各写一遍):求1到100...

网友评论

    本文标题:小程序总结(五)-定位功能

    本文链接:https://www.haomeiwen.com/subject/xbpybftx.html