微信小程序获取用户当前位置有三个方式:

1. wx.getLocation

注意: 先要在app.json里配置permission:

不然就会出现以下提示(本地测试环境):

配置如下:

"permission": {"scope.userLocation": {"desc": "为了给您提供更好的服务,请授权您的地理位置信息"}},

wxml:

<button class="btn" type="primary" bindtap="handleGetLocation">getLocation
</button>

js:

handleGetLocation: function () {//获取位置wx.getLocation({type: 'gcj02', //默认为 wgs84 返回 gps 坐标,gcj02 返回可用于wx.openLocation的坐标success: (res) => {console.log(res)},fail: (err) => {console.log(err)}})},

success回调函数返回数据:

2.wx.chooseLocation

wxml:

<button class="btn" type="default" bindtap="handleChooseLocation">chooseLocation
</button>

js:

handleChooseLocation: function () {wx.chooseLocation({success: (res) => {console.log(res)let {latitude, longitude, name} = resthis.setData({hasLocation: true,latitude, longitude, name})},fail: (err) => {console.log(err)}});},

打开地图效果:

选择完地址 success回调函数返回数据:

3.wx.openLocation

wxml:

<button class="btn" type="default" bindtap="handleChooseLocation">chooseLocation
</button>
<button class="btn" wx:if="{{hasLocation}}" type="warn" bindtap="handleOpenLocation">openLocation
</button>

js:

handleOpenLocation: function () {let {latitude, longitude, name} = this.datawx.openLocation({latitude,longitude,name,scale: 28})  },

打开地图效果:

授权方法有三种:

1. wx.getSetting

js:

wx.getSetting({success (res) {console.log(res.authSetting)}})

输出结果如下:

2. wx.openSetting

调起权限设置选择界面,设置界面只会出现小程序已经向用户请求过的权限,如下面:

3. wx.authorize

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

说下一个常见场景,用户不允许授权地理位置信息,在后续操作中又需要授权才能使用地图,如何处理:

可以在fail里弹对话框:

wxml:

<button class="btn" type="default" bindtap="onChooseLocation">chooseLocation
</button>

js:

handleChooseLocation: function() {wx.chooseLocation({success: (res) => {console.log(res)let {latitude, longitude, name} = resthis.setData({hasLocation: true,latitude, longitude, name})},fail: (err) => {console.log(err)}});},onChooseLocation: function () {let self = this;wx.getSetting({success: (res) => {if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] == true) {self.setData({position: true,})//获取当前位置self.handleChooseLocation();} else {//未授权wx.showModal({title: '请求授权当前位置',content: '需要获取您的地理位置,请确认授权',success: function (res) {if (res.cancel) {//取消授权wx.showToast({title: '拒绝授权',icon: 'none',duration: 1000})} else if (res.confirm) {//确定授权,通过wx.openSetting发起授权请求wx.openSetting({success: function (res) {if (res.authSetting["scope.userLocation"] == true) {// wx.showToast({//   title: '授权成功',//   icon: 'success',//   duration: 1000// })//再次授权,调用wx.getLocation的APIself.handleChooseLocation();} else {// wx.showToast({//   title: '授权失败',//   icon: 'none',//   duration: 1000// })}}})}}})}},fail(res) {console.log(res)}})    },

参考资料:

授权 | 微信开放文档

微信小程序之获取用户位置权限(拒绝后提醒) - 站住,别跑 - 博客园

微信小程序之获取用户位置权限相关推荐

  1. 微信小程序制作——获取用户信息

    微信小程序制作--获取用户信息 1.获取用户信息 方式一 wxml <view bindtap="getUserName">获取当前用户名</view> j ...

  2. 微信小程序之获取用户基本信息

    微信小程序之获取用户基本信息 一.使用Redis存储access-token package com.qfjy.project.weixin.api.accessToken;import com.qf ...

  3. php取微信名字和头像,微信小程序如何获取用户头像和昵称

    本文介绍了微信小程序如何获取用户头像和昵称,分享给大家,具体如下: 代码user.wxml: {{userInfo.nickName}} user.js //sort.js //獲取應用實例 var ...

  4. 微信小程序 getPhoneNumber获取用户手机号

    微信小程序 getPhoneNumber获取用户手机号 在使用getPhoneNumber前,可以先看下官方文档:文档地址 在注意这里,官方提到如果不使用之前wx.login调用获取的sessionK ...

  5. 微信小程序 访问ip服务器,微信小程序如何获取code?微信小程序如何获取用户ip?...

    微信小程序如何获取code?微信小程序如何获取用户ip?最近小编收到很多问题,其中一个就是下面小编为大家整理一下关于微信小程序如何获取code的步骤,希望这些方法能够帮助到大家. 首先,调用 wx.l ...

  6. 微信小程序——最新获取用户昵称和头像的方法总结

    前段时间微信小程序对获取用户昵称和头像方法进行了更新,网上很多的文章都已经不适用了,这里简单总结一下 首先,传统接口wx.getUserInfo的效果会弹出一个给用户的弹窗,需要用户授权,经过测试传统 ...

  7. 微信小程序授权获取用户信息和手机号码

    微信小程序授权获取用户信息和手机号码 1.微信官方文档 登录:https://developers.weixin.qq.com/miniprogram/dev/framework/open-abili ...

  8. 微信小程序授权 获取用户信息

    微信小程序授权 获取用户信息 小程序昵称突然变成了"微信用户",头像也不显示, <!-- 近期很多小伙伴通过该方法获取头像和昵称,代码也没有做改变,突然就变成了下面这样子 - ...

  9. 微信小程序之获取用户地址

    在微信小程序中获取定位信息 今天一整天基本上都在处理在微信小程序中获取准确地址,给出定位并给出所在城市的问题.经过走了半天弯路,现在总结一下所需要的步骤. 一. 先到腾讯位置服务中心获取KEY 通过小 ...

  10. 微信小程序中获取用户微信公众号授权(openid)用来发送模板消息

    需求: 由于小程序不能直接向用户发送模板消息,所以需要用公众号向用户发送模板消息. 于是需要将小程序的openid和公众号的openid绑定在一起.提供两种思路: 方法一: 1.微信小程序和公众号都绑 ...

最新文章

  1. 2022-2028年中国硫化橡胶粉行业市场发展调研及竞争战略分析报告
  2. RabbitMQ超详细安装教程(Linux)
  3. 自动识别HTML代码里的图片链接,并下载到服务器的指定目录(开源)
  4. leetcode算法题--复数乘法
  5. 【渗透测试】一次从黑盒转向白盒
  6. django html文本编辑器,django xadmin 集成DjangoUeditor富文本编辑器
  7. 人工智能实践之旅 —— 简单说说主要内容和安排
  8. Java8学习笔记(三)--方法引入
  9. @Autowired @Resource @Inject 自动注入
  10. ASP.NET Core on K8s学习之旅(14)Ingress灰度发布
  11. 随机调用mysql数据库表值10条php_PHP随机显示mysql数据库中的数据
  12. 查看一个网站后台是用的什么服务器
  13. splay伸展树基础操作(bzoj 1861: [Zjoi2006]Book 书架)
  14. 【声源定位】基于matlab不同空间谱估计的声源定位算法比较【含Matlab源码 545期】
  15. WPS中的公式编辑器如何打空格
  16. 专用集成电路设计实用教程(学习笔记一)
  17. 国内外cms网站大全
  18. python公里转英里_从英里换算为公里
  19. 网页中使用CSS样式表的五种方法
  20. 一个简单的购物车加减按钮

热门文章

  1. JAVA版AES加解密工具类(含偏移量)
  2. python版本AES CBC 模式ECA加密逻辑
  3. CODOSYS之结构化文本(ST)—— 初级篇(二)简介与基本概念
  4. LaTex - 插入公式 (从MathType公式编辑器导入到LaTex中)
  5. 计算机没有管理无线网络,电脑连接无线网络时,提示你没有首选无线网络怎么办...
  6. css中导入自定义字体库
  7. 2021年N1叉车司机考试及N1叉车司机考试试卷
  8. phpcms一键清理数据后完整找回数据
  9. 怎么利用计算机自带功能删除垃圾,win7系统怎么清除电脑里的垃圾
  10. 仅需3 小时,如何用 AI 做场景贴图,完成场景制作 ?AI创作工作流探索