微信小程序弹出用户授权弹窗,微信小程序引导用户授权,获取位置经纬度

简介: 微信小程序弹出用户授权弹窗,微信小程序引导用户授权,获取位置经纬度

老规矩,先看效果图


授权.gif


一,我们使用位置信息,就需要授权


//校验位置权限是否打开
 checkLocation() {  let that = this;  //选择位置,需要用户授权
  wx.getSetting({
   success(res) {    if (!res.authSetting['scope.userLocation']) {
     wx.authorize({      scope: 'scope.userLocation',
      success() {
       wx.showToast({ //这里提示失败原因
        title: '授权成功!',        duration: 1500
       })
      },
      fail() {
       that.showSettingToast('需要授权位置信息');
      }
     })
    }
   }
  })
 },

弹窗.png


首先检验用户是否授权位置信息的权限“scope.userLocation”,如果有授权,我们就可以直接去获取用户的位置经纬度了。如果没有授权,我们就弹窗引导用户去设置页。去设置页的方法如下

// 打开权限设置页提示框
 showSettingToast: function (e) {
  wx.showModal({   title: '提示!',   confirmText: '去设置',   showCancel: false,   content: e,   success: function (res) {    if (res.confirm) {
     wx.navigateTo({      url: '../setting/setting',
     })
    }
   }
  })
 },

弹窗引导用户去设置页

由于去设置页,需要用户手动触发,这里我们就用一个setting.wxml页作为过过渡页。


过渡页


我们这个过渡页的按钮,用户点击后就会去真正的授权页了。


授权页

当用户开启地理位置授权后。我们再点击获取位置,就可以获取到用户当前的经纬度了。

获取到了经纬度


完整代码如下


//index.jsPage({
 getLocation() {  this.checkLocation();  let that = this;
  wx.chooseLocation({   success: function(res) {    var latitude = res.latitude    var longitude = res.longitude;
    that.setData({     address: "经纬度:" + longitude + ", " + latitude,
    })
   }
  });
 }, //校验位置权限是否打开
 checkLocation() {  let that = this;  //选择位置,需要用户授权
  wx.getSetting({
   success(res) {    if (!res.authSetting['scope.userLocation']) {
     wx.authorize({      scope: 'scope.userLocation',
      success() {
       wx.showToast({ //这里提示失败原因
        title: '授权成功!',        duration: 1500
       })
      },
      fail() {
       that.showSettingToast('需要授权位置信息');
      }
     })
    }
   }
  })
 }, // 打开权限设置页提示框
 showSettingToast: function (e) {
  wx.showModal({   title: '提示!',   confirmText: '去设置',   showCancel: false,   content: e,   success: function (res) {    if (res.confirm) {
     wx.navigateTo({      url: '../setting/setting',
     })
    }
   }
  })
 },
})

到此我们就实现了小程序引导授权的全部功能,并且可以获取到用户的位置经纬度了。是不是很简单。

相关文章
|
25天前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
381 7
|
24天前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
442 1
|
1月前
|
存储 JSON 小程序
微信小程序入门之新建并认识小程序结构
微信小程序入门之新建并认识小程序结构
47 1
ly~
|
2月前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
76 6
|
28天前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
157 1
|
29天前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
457 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
24天前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
255 0
|
28天前
|
小程序
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
386 0
|
1月前
|
人工智能 小程序 Python
Python编程小案例——编一个事件提醒弹窗小程序
Python编程小案例——编一个事件提醒弹窗小程序
|
2月前
|
小程序 前端开发 API
微信小程序 - 调用微信 API 回调函数内拿不到 this 问题(解决方案)
本文讨论了在微信小程序中调用API回调函数时无法获取到`this`上下文的问题,并提供了解决方案。在回调函数中,使用一个变量(如`that`)来保存当前的`this`引用,然后在回调内部使用这个变量来访问当前页面的数据和方法。
下一篇
无影云桌面