资讯专栏INFORMATION COLUMN

小程序位置授权处理

learn_shifeng / 1913人阅读

摘要:在中加入授权配置你的位置信息将用于小程序位置接口的效果展示在页面中使用,需要有几个注意的地方,初次使用的时候,去申请权限。

这两天在做小程序调取地图的时候遇到一个问题,如果用户第一次拒绝了位置权限请求。那么就不会再次唤起授权弹出。需要我们引导用户去开启。

具体做法如下。
aap.json中加入授权配置

"permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示"
    }
  }

在 page页面中使用,需要有几个注意的地方,初次使用的时候,去申请权限。这里我是放在onShow 方法里面。

 onShow: function () {
    //初始获取定位权限
    wx.authorize({
      scope: "scope.userLocation",
      success: (res) => {
       
      },
    })
  },

然后在调用地图地位。或者获取用户权限的函数去判断是否有定位权限,如果没有那么引导用户开启权限。
如下:我有一个Input去触发选择地图事件。

事件处理

 openMap:function(e){
    var that = this
    wx.getSetting({
        success(res){
        //这里判断是否有地位权限
          if (!res.authSetting["scope.userLocation"]) {
            wx.showModal({
              title: "提示",
              content: "请求获取位置权限",
              success:function(res){
               if(res.confirm==false){
                  return false;
                }
                wx.openSetting({
                  success(res) {
                    //如果再次拒绝则返回页面并提示
                    if (!res.authSetting["scope.userLocation"]) {
                      wx.showToast({
                        title: "此功能需获取位置信息,请重新设置",
                        duration: 3000,
                        icon: "none"
                      })
                    } else {
                      //允许授权,调用地图
                      that.chooseMap()
                    }
                  }
                })
              }
            }) 
          } else {
          //如果有定位权限,调用地图
            that.chooseMap()
          }

        }
      
    })
  },
  
    chooseMap(){
    var that = this
    wx.chooseLocation({
      success: function (res) {
        that.setData({
          address: res.address,
          latitude: res.latitude,
          longitude: res.longitude
        })
      },
      fail: function (res) {
        console.log(res)
      }
    })
  },

原文地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104597.html

相关文章

  • 微信小程序 + 腾讯地图SDK 实现路线规划

    摘要:业内开发框架层出不穷,,,等等,都在朝着更快,更强大的方向发展,有统一微信支付宝百度和头条小程序的大趋势。最近升级为版本,支持微信支付宝百度和头条小程序。 原文链接 最近小程序的发展越来越火了,作为各个产品线的extra服务入口,以轻便、快速、强大的社交链吸引着大量的用户和开发者。业内开发框架层出不穷,wepy,mpvue,taro等等,都在朝着更快,更强大的方向发展,有统一 H5、微...

    keithyau 评论0 收藏0
  • 微信小程序 + 腾讯地图SDK 实现路线规划

    摘要:业内开发框架层出不穷,,,等等,都在朝着更快,更强大的方向发展,有统一微信支付宝百度和头条小程序的大趋势。最近升级为版本,支持微信支付宝百度和头条小程序。 原文链接 最近小程序的发展越来越火了,作为各个产品线的extra服务入口,以轻便、快速、强大的社交链吸引着大量的用户和开发者。业内开发框架层出不穷,wepy,mpvue,taro等等,都在朝着更快,更强大的方向发展,有统一 H5、微...

    BLUE 评论0 收藏0
  • 微信小程序开发中的二三事之网易云信IMSDK DEMO

    摘要:传统的网页编程采用的三剑客来实现,在微信小程序中同样有三剑客。观察者模式不难实现,重点是如何在微信小程序中搭配其特有的生命周期来使用。交互事件传统的事件传递类型有冒泡型与捕获型,微信小程序中自然也有。 本文由作者邹永胜授权网易云社区发布。 简介为了更好的展示我们即时通讯SDK强悍的能力,网易云信IM SDK微信小程序DEMO的开发就提上了日程。用产品的话说就是: 云信 IM 小程序 S...

    weij 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<