想要获取当前位置,大前提:1、微信允许访问位置信息,2、手机定位开启
所以,我们进入小程序时,要获取位置,需要考虑权限问题。
怎样才能在每次进入都获取,并且大部分用户进入 执行的代码更少?怎样避免每次每人都执行所有的代码?

考虑:
1、既然每次都要获取经纬度,那么获取位置方法必须。同时,老用户,绝大部分情况是微信授权过的,至于新用户,反正都是得执行一遍。所以,我进入后直接获取位置经纬度。
2、如果获取经纬度失败,那么有两种情况,一个是微信位置没有授权,一个是定位没开。
我这里,优先判断微信位置授权,siteAuthoriza 标识授权,初始化为null,通过 微信 getSetting方法校验权限之后 赋值 true 或 false分别标识允许否。siteAuthoriza一旦不等于null,代表已经校验过权限了。

  • 先获取经纬度
getUserLocation() {const that = thiswx.getLocation({type: 'wgs84',success(res) {console.log('res----获取到了经纬度', res)...},fail(error) {console.log(error, '----------error------------')// 失败 大部分两种情况// 1、微信授权成功后调用此方法 siteAuthoriza 标识微信地址授权 true  但是 手机定位没打开// 2 微信地址授权拒绝,或者拒绝过。若拒绝过短期内不会出弹窗if (that.data.siteAuthoriza === true) {  that.openPhoneSetting() // 去打开手机设置 用户手动} else { // 校验微信授权that.getAuthorizaInfo(1)}}})
}
  • 获取位置失败,校验微信授权
    (这个授权校验方法,两个地方会调用,1、获取位置经纬度失败 2、进入微信授权页之后返回当前页-onShow)
// noPhoneSite  值 1 标识 获取经纬度失败时调用 无值或值null标识 从微信授权页返回调用校验
getAuthorizaInfo(noPhoneSite) {//查看设置是否允许获取地理位置const that = thiswx.getSetting({success(res) {if (!res.authSetting['scope.userLocation']) {//已拒绝授权--显示授权弹出层 点击 手动打开微信设置this.setData({siteAuthoriza: false})// 可以是弹窗或其他,需用户手动触发...} else {//已授权啦that.setData({siteAuthoriza: true // 标识微信授权过了})if (noPhoneSite) {// 已授权 但获取位置失败 需手动打开手机定位that.openPhoneSetting() // 弹窗提示打开手机定位return}// 微信授权后 校验确实授权过,重新获取微信信息that.getUserLocation()}}})
},

微信小程序-地理授权-获取经纬度-权限相关 流程总结相关推荐

  1. 微信中html5获取手机号,微信小程序用户授权获取手机号(getPhoneNumber)

    前言 小程序有一个获取用户很便捷的api,就是通过getPhoneNumber获取用户的已经绑定微信的手机号码.有一点要大家注意,现在微信和注重用户体验,有些方法都是需要用户主动去触发才能调用的,比如 ...

  2. 微信小程序信息授权获取(头像,昵称,等)

    这里简单说一下微信小程序获取头像,昵称等信息,这里是将demo部分功能单独呈现,最后附上DEMO: 一.效果图: 这个功能比较简单就直接上代码 二.代码部分 1..WXML代码示例 <view ...

  3. 如何在微信小程序中授权获取手机号码

    小程序获取手机号码 1.获取手机号码前提条件 该小程序为非个人开发者,且完成了认证的小程序开放(不包含海外主体).需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口 ...

  4. 微信小程序、uni-app获取经纬度,并将经纬度转化为确定的位置信息

    目录 一)小程序获得经纬度 二)将经纬度转化为位置信息 三)uni-app版书写: 一)小程序获得经纬度   调用wx.getLocation()方法,经纬度直接存在success回调函数的latit ...

  5. 微信小程序通过省市区获取经纬度

    1.在腾讯位置服务注册-完善个人信息-应用管理-创建应用并申请key 2.在微信公众平台,配置request路径和添加地图插件 添加request路径:https://apis.map.qq.com ...

  6. 微信小程序中如何获取用户手机号授权登录

    随着微信小程序的普及,许多应用程序需要用户登录才能提供更好的服务.而获取用户手机号码是验证用户身份和确保账户安全的重要步骤之一.因此,在本文中,我们将介绍如何在微信小程序中实现手机号授权登录. 步骤一 ...

  7. 微信小程序开发提示“获取手机号码失败 ERROR:该appid没有权限”解决方案

    关于微信小程序开发提示"获取手机号码失败, ERROR:该appid没有权限"的解决方案 一般这种情况的出现都是出现在二次开发上面,原开发人员变动,不在开发该程序.新人在接手这个程 ...

  8. 微信小程序实现登录获取头像昵称

    微信小程序如何来获取用户头像昵称 大家一定对下面这个图不陌生吧,我们在进入小程序之前,都会遇见类似这样的情况,那么这个是怎么用微信开发者工具实现的呢? 要求 1.首先,我们打开微信开发者工具,新建一个 ...

  9. 微信小程序之授权登录

    微信小程序之授权登录 之前微信授权登录时是直接可以通过getUserInfo接口 弹出授权弹窗.由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通 ...

最新文章

  1. navicat - Transaction numbers are only allowed on a replica set member or mongos
  2. 【手写系列】纯手写实现一个高可用的RPC
  3. php 处理raw数据,php以raw格式传递数据
  4. permission denied和linux赋值权限chmod命令
  5. 通过Java和Spring Boot应用程序将Gmail用作SMTP服务器
  6. 第2章 状态机思维与状态机变量
  7. 暴风TV请来中国人工智能first lady冯雁教授任首席科学家
  8. Gephi 入门使用
  9. 交叉编译ghostscript-9.53.3
  10. 华为认证高级网络工程师(Huawei Certified Senior Network Engineer HCSE)
  11. 信度和效度经典例子_如何做信度与效度分析?
  12. 统计学cv值是什么意思_什么是CV值
  13. np.array的axis进行横向纵向的求和运算
  14. Mos结电容Cgd、Cgs、Cds与分布参数Ciss、Crss、Coss
  15. ffmpeg 分离视频音频流 缺失sei信息
  16. 学习 CommandName 和 CommandArgument
  17. HTML(二) -- 表格设计
  18. 一文解释电路中常用电子元器件应用和选型01
  19. 设置liunx服务器编码,中文乱码问题
  20. 2020年校招[随手更新]

热门文章

  1. Timesten 日常管理命令合集
  2. 《C专家编程》:如何用气压计测量建筑物的高度(附3)
  3. (三) 立创EDA原理图库的创建
  4. “十一”期间支付系统也“休假”
  5. transformer编码器-解码器结构分析
  6. Java性能调优面试-2
  7. Linux系统查看网卡带宽及网络使用情况
  8. vim8.0 c++开发环境配置
  9. Android Studio使用碰到报错问题记录
  10. VS导入数据到数据库