微信小程序之获取用户位置权限
微信小程序获取用户当前位置有三个方式:
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.获取用户信息 方式一 wxml <view bindtap="getUserName">获取当前用户名</view> j ...
- 微信小程序之获取用户基本信息
微信小程序之获取用户基本信息 一.使用Redis存储access-token package com.qfjy.project.weixin.api.accessToken;import com.qf ...
- php取微信名字和头像,微信小程序如何获取用户头像和昵称
本文介绍了微信小程序如何获取用户头像和昵称,分享给大家,具体如下: 代码user.wxml: {{userInfo.nickName}} user.js //sort.js //獲取應用實例 var ...
- 微信小程序 getPhoneNumber获取用户手机号
微信小程序 getPhoneNumber获取用户手机号 在使用getPhoneNumber前,可以先看下官方文档:文档地址 在注意这里,官方提到如果不使用之前wx.login调用获取的sessionK ...
- 微信小程序 访问ip服务器,微信小程序如何获取code?微信小程序如何获取用户ip?...
微信小程序如何获取code?微信小程序如何获取用户ip?最近小编收到很多问题,其中一个就是下面小编为大家整理一下关于微信小程序如何获取code的步骤,希望这些方法能够帮助到大家. 首先,调用 wx.l ...
- 微信小程序——最新获取用户昵称和头像的方法总结
前段时间微信小程序对获取用户昵称和头像方法进行了更新,网上很多的文章都已经不适用了,这里简单总结一下 首先,传统接口wx.getUserInfo的效果会弹出一个给用户的弹窗,需要用户授权,经过测试传统 ...
- 微信小程序授权获取用户信息和手机号码
微信小程序授权获取用户信息和手机号码 1.微信官方文档 登录:https://developers.weixin.qq.com/miniprogram/dev/framework/open-abili ...
- 微信小程序授权 获取用户信息
微信小程序授权 获取用户信息 小程序昵称突然变成了"微信用户",头像也不显示, <!-- 近期很多小伙伴通过该方法获取头像和昵称,代码也没有做改变,突然就变成了下面这样子 - ...
- 微信小程序之获取用户地址
在微信小程序中获取定位信息 今天一整天基本上都在处理在微信小程序中获取准确地址,给出定位并给出所在城市的问题.经过走了半天弯路,现在总结一下所需要的步骤. 一. 先到腾讯位置服务中心获取KEY 通过小 ...
- 微信小程序中获取用户微信公众号授权(openid)用来发送模板消息
需求: 由于小程序不能直接向用户发送模板消息,所以需要用公众号向用户发送模板消息. 于是需要将小程序的openid和公众号的openid绑定在一起.提供两种思路: 方法一: 1.微信小程序和公众号都绑 ...
最新文章
- 2022-2028年中国硫化橡胶粉行业市场发展调研及竞争战略分析报告
- RabbitMQ超详细安装教程(Linux)
- 自动识别HTML代码里的图片链接,并下载到服务器的指定目录(开源)
- leetcode算法题--复数乘法
- 【渗透测试】一次从黑盒转向白盒
- django html文本编辑器,django xadmin 集成DjangoUeditor富文本编辑器
- 人工智能实践之旅 —— 简单说说主要内容和安排
- Java8学习笔记(三)--方法引入
- @Autowired @Resource @Inject 自动注入
- ASP.NET Core on K8s学习之旅(14)Ingress灰度发布
- 随机调用mysql数据库表值10条php_PHP随机显示mysql数据库中的数据
- 查看一个网站后台是用的什么服务器
- splay伸展树基础操作(bzoj 1861: [Zjoi2006]Book 书架)
- 【声源定位】基于matlab不同空间谱估计的声源定位算法比较【含Matlab源码 545期】
- WPS中的公式编辑器如何打空格
- 专用集成电路设计实用教程(学习笔记一)
- 国内外cms网站大全
- python公里转英里_从英里换算为公里
- 网页中使用CSS样式表的五种方法
- 一个简单的购物车加减按钮
热门文章
- JAVA版AES加解密工具类(含偏移量)
- python版本AES CBC 模式ECA加密逻辑
- CODOSYS之结构化文本(ST)—— 初级篇(二)简介与基本概念
- LaTex - 插入公式 (从MathType公式编辑器导入到LaTex中)
- 计算机没有管理无线网络,电脑连接无线网络时,提示你没有首选无线网络怎么办...
- css中导入自定义字体库
- 2021年N1叉车司机考试及N1叉车司机考试试卷
- phpcms一键清理数据后完整找回数据
- 怎么利用计算机自带功能删除垃圾,win7系统怎么清除电脑里的垃圾
- 仅需3 小时,如何用 AI 做场景贴图,完成场景制作 ?AI创作工作流探索