小程序----选择地理位置 ( wx.chooseLocation ) 和 获取地理位置 (wx.getSetting)

问题来了:假如我第一次使用wx.chooseLocation()获取权限被拒绝,然后使用wx.getSetting()来重新获取权限该怎么做呢?

思路:wx.chooseLocation()有fail方法,如果第一次拒绝之后,以后调用选择地图都是触发的这个,那么我可以在fail方法里面,使用wx.getSetting(),这样就每次都能判断是否已经给与了权限了。

wx.chooseLocation({
      success(res) {
        console.log(res)
        that.setData({
          // hasLocation: true,
          location: formatLocation(res.longitude, res.latitude),
          address: res.address
        })
      },
      fail: function () {
        wx.getSetting({
          success: function (res) {
            var statu = res.authSetting;
            if (!statu[‘scope.userLocation‘]) {
              wx.showModal({
                title: ‘是否授权当前位置‘,
                content: ‘需要获取您的地理位置,请确认授权,否则地图功能将无法使用‘,
                success: function (tip) {
                  if (tip.confirm) {
                    wx.openSetting({
                      success: function (data) {
                        if (data.authSetting["scope.userLocation"] === true) {
                          wx.showToast({
                            title: ‘授权成功‘,
                            icon: ‘success‘,
                            duration: 1000
                          })
                          //授权成功之后,再调用chooseLocation选择地方
                          wx.chooseLocation({
                            success: function (res) {
                              obj.setData({
                                addr: res.address
                              })
                            },
                          })
                        } else {
                          wx.showToast({
                            title: ‘授权失败‘,
                            icon: ‘success‘,
                            duration: 1000
                          })
                        }
                      }
                    })
                  }
                }
              })
            }
          },
          fail: function (res) {
            wx.showToast({
              title: ‘调用授权窗口失败‘,
              icon: ‘success‘,
              duration: 1000
            })
          }
        })
      }
    })

效果图: 

本文转载他人链接: https://www.cnblogs.com/zjjDaily/p/9020921.html

原文地址:https://www.cnblogs.com/520BigBear/p/10563174.html

时间: 2024-11-14 12:28:56

小程序----选择地理位置 ( wx.chooseLocation ) 和 获取地理位置 (wx.getSetting)的相关文章

微信小程序开发(request请求后台获取不到data)

1微信的request的post请求后台获取不到data(当初这个问题纠结了好久好久),原因是post传递的data是json格式而不是key,value的格式,所以获取不到相应的data就是post请求应为表单模式的data,微信小程序提供的datajson格式完全获取不到. 解决方法: 1.改变header header: {'Content-Type': 'application/json;charset=UTF-8;'}, 2.query的格式传递post请求就可以了,不过这个有点..你

微信小程序---选择图片和调用微信拍照

1.实现点击头像按钮实现选择图片或者拍照,将图片重新设置成头像: //index.js //获取应用实例 var app = getApp() Page({ data: { motto: 'Hello World', userInfo: {}, avatarUrl:null }, //事件处理函数 bindViewTap: function() { var that = this // 选择图片和拍照 wx.chooseImage({ count: 1, // 默认9 sizeType: ['o

【小程序】微信小程序绑定企业微信后怎样获取到用户信息

一.获取access_token 1.https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRECT Corpid和secrect是唯一的 access_token:有效期2小时 二.获取code 小程序调用wx.login获取临时登录凭证code,并回传到开发者服务器 三.获取用户id https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?

微信小程序通过getPhoneNumber后台PHP解密获取用户手机号码

之前做的版本用户这块是以获取用户openid为凭证,最近改版重新整理了一下,新增注册登录以手机号码为主, 两种(正常注册手机号码-密码+一键获取当前用户手机号码) getPhoneNumber这个组件要通过button来实现.将button中的open-type=“getPhoneNumber”,并且绑定bindgetphonenumber事件获取回调. 在使用这个组件之前必须先调用 login 接口 然后传递code,iv,encryptedData参数到后台,后台解密 示例 <button

原创:微信小程序java实现AES解密并获取unionId

来自:微信小程序联盟 如果大家使用小程序的同时还在使用公众号的话,可能会用到unionId这种功能,由于公司业务需要,我们需要使用unionId,具体使用方法,请参考微信开放平台的说明,但是在微信小程序的文档中只给出了部分语言实现的源码,竟然没有java的,小程序的开发人员是有多么懒.难道大家都不用java写后台??? 什么鬼,然后开始了各种AES踩坑之路,其实参考了很多的网上的教程,再次不能一一列出来给大家了,(因为我写这篇文章的时候,已经是解决问题一周以后了),也收到管理员的很多帮助,再次写

微信小程序选择视频,视频上传,视频播放

请查看链接地址看具体详情: 选择视频: https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-video.html#wxchoosevideoobject 视频上传时和图片上传是一个道理需要使用小程序的上传模版:(将选择视频的链接传给后台,后台将链接转换成后台存储的路径) https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-file.html#wxuploadfileobject 视频播放:

微信小程序-关于post 过来服务器没有获取到数据问题

查看一下服务器接收的post 参数是以什么形式接收的 微信给出得demo 请求的方式是Json 参数传递的 所以如果服务器使用的from 表单形式接收数据需要更改微信小程序中的 header 将 header: { 'content-type': 'application/json' }, 改成 header: { 'content-type': 'application/x-www-form-urlencoded' },

小程序之一键回到顶部和获取滚动条当前位置

1.获取滚动条当前位置 2.回到顶部 onPageScroll:function(e){ // 获取滚动条当前位置 console.log(e) console.log(e.scrollTop)//获取滚动条当前位置的值 }, goTop: function (e) { // 一键回到顶部 if (wx.pageScrollTo) {//判断这个方法是否可用 wx.pageScrollTo({ scrollTop: 0 }) } else { wx.showModal({ title: '提示'

小程序框架之视图层 View~获取界面节点信息

获取界面上的节点信息 WXML节点信息 节点信息查询 API 可以用于获取节点属性.样式.在界面上的位置等信息. 最常见的用法是使用这个接口来查询某个节点的当前位置,以及界面的滚动位置. 示例代码: const query = wx.createSelectorQuery() query.select('#the-id').boundingClientRect(function(res){ res.top // #the-id 节点的上边界坐标(相对于显示区域) }) query.selectV