zoukankan      html  css  js  c++  java
  • 小程序判断用户是否授权位置信息

    今天记录一下小程序中,用户是否授权位置信息的问题:

    场景:当用户点击某个按钮的时候,需要先获取到用户的位置,然后再进行其他操作;果如用户拒绝了授权,当再次点击按钮的时候依然会弹起授权窗口;

     1 // index/index.js
     2 Page({
     3     data: {
     4         latitude: '',    //纬度
     5         longitude: '',  //经度
     6         address: '',    //地址
     7     },
     8 
     9   /**
    10    * 点击打卡
    11    */
    12   signInClick(e) {
    13       // 判断用户是否授权,里面会调用打卡接口
    14       this.isGetSetting()
    15   },
    16 
    17       /**
    18    * 判断用户是否授权
    19    */
    20   isGetSetting() {
    21     // 判断用户是否授权
    22     wx.getSetting({
    23       success: (res) => {
    24         var statu = res.authSetting;
    25         if (!statu['scope.userLocation']) { //没授权
    26           wx.showModal({
    27             title: '是否授权当前位置',
    28             content: '需要获取您的地理位置,请确认授权',
    29             confirmColor: '#f16765',
    30             success: res => {
    31               if (res.confirm) {
    32                 wx.openSetting({
    33                   success: data => {
    34                     if (data.authSetting["scope.userLocation"]) {
    35                       // 调用百度地图,获取位置信息(就是经纬度转换成地址)
    36                       this.bdMap()
    37                     }
    38                   }
    39                 })
    40               }
    41             }
    42           })
    43         } else { //已授权
    44             //做一些事情...
    45             
    46         }
    47       }
    48     })
    49   },
    50 
    51   /**
    52    * 百度API封装,用于获取用户位置
        * 如果要使用百度地图获取具体位置,申请完key以后,需要在小程序后台配置百度域名https://api.map.baidu.com
    53 */ 54 bdMap() { 55 // 调用百度地图api 56 var Bmap = new bmap.BMapWX({ 57 ak: 'IhgcYGTwAWc2xxxxxxxxxxxxx' //这个ak需要在百度地图开放平台根据小程序的AppID申请 58 }); 59 // 进行regeocoding检索,根据经纬度获得对应的地理描述信息 60 Bmap.regeocoding({ 61 success: res => { 62 var _data = res.wxMarkerData; 63 this.setData({ 64 latitude: _data[0].latitude, 65 longitude: _data[0].longitude, 66 address: _data[0].address + _data[0].desc, 67 }) 68 // 做一些事情.... 69 70 }, 71 fail: res => { 72 wx.showToast({ 73 title: '您拒绝了授权,XX功能将无法使用', 74 icon: 'none', 75 duration: 3000 76 }) 77 } 78 }) 79 }, 80 81 })
  • 相关阅读:
    正则二三事
    docker elasticsearch 5.6.13 安装ik分词器
    centos docker 防火墙设置(多个ip之间互相访问)
    ElasticSearch结构化搜索和全文搜索
    Jest — ElasticSearch Java 客户端
    提高redis cluster集群的安全性,增加密码验证
    spring boot 设置 gzip 压缩
    centos 7磁盘空间满了导致redis cluster问题和kafka的问题
    SpringBoot之MySQL数据的丢失的元凶--事务(转)
    mysql mycat 1.6.6.1-release 批量 insert 数据丢失问题(续)
  • 原文地址:https://www.cnblogs.com/rzsyztd/p/12335872.html
Copyright © 2011-2022 走看看