当前位置: 首页 > article >正文

小程序判断是否授权位置信息和手动授权

文章目录

    • 概要
    • 微信小程序的,使用的是高德地图

概要

当用户来到页面之后就会弹出是否授权弹框,但是如果第一次关闭之后,下一次再过来的话页面的授权弹框就不出现了,针对于这种情况写了一个方法

微信小程序的,使用的是高德地图

	getLocationPodel() {
				let that = this
			
					wx.getSetting({
					    success: (res) => {
					     if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {//非初始化进入该页面,且未授权
						  wx.showModal({
					       title: '是否授权当前位置',
					       content: '需要获取您的地理位置,请确认授权,否则无法获取您所需数据',
					       success: function (res) {
					        if (res.cancel) {
					         
					        } else if (res.confirm) {
					         wx.openSetting({
					          success: function (dataAu) {
					           if (dataAu.authSetting["scope.userLocation"] == true) {
					            wx.showToast({
					             title: '授权成功',
					             icon: 'success',
					             duration: 1000
					            })
					            //再次授权,调用getLocationt的API
					            that.getLocation1();
					           } else {
					            wx.showToast({
					             title: '授权失败',
					             icon: 'success',
					             duration: 1000
					            })
					           }
					          }
					         })
					        }
					       }
					      })
					     } else if (res.authSetting['scope.userLocation'] == undefined) {//初始化进入
					      that.getLocation1();
					     }
					     else { //授权后默认加载
					      that.getLocation1();
					     }
					    }
					})
			
			},
			getLocation1() {
				let that = this
				uni.getLocation({
					type: 'wgs84',
					success: function (res) {
						that.getLocation(res.latitude,res.longitude)
					},
					fail:function(res) {
						console.log('dfvdfvdfv')
					}
				});
			},
			getLocation(latitude,longitude) {
				let that = this
				 //根据经纬度获取城市信息
				wx.request({
					url: 'https://apis.map.qq.com/ws/geocoder/v1',
					data: {
						key:'自己的key值,
					    location:`${latitude},${longitude}`
					},
					success: (res) => {
						let address = res.data.result.address_component
						that.city = address.city
						that.province = address.province
					},
					fail: () => {},
					complete: () => {}
				});
			},

http://www.kler.cn/a/134793.html

相关文章:

  • python 2小时学会八股文-数据结构
  • 大数据新视界 -- 大数据大厂之 Impala 性能飞跃:动态分区调整的策略与方法(上)(21 / 30)
  • redis bind 127.0.0.1和bind 10.34.56.78的区别
  • linux c/c++最高效的计时方法
  • 应用于新能源汽车NCV4275CDT50RKG车规级LDO线性电压调节器芯片
  • 某app最新版 vmp算法分析一
  • 【每日一题】最大子数组和
  • 小程序商城免费搭建之java商城 电子商务Spring Cloud+Spring Boot+二次开发+mybatis+MQ+VR全景+b2b2c
  • 越南MIC新规针对ICT和ITE产品电气授权标准变更
  • 一起学docker系列之四docker的常用命令--系统操作docker命令及镜像命令
  • Springcloud可视化物联网智慧工地云SaaS平台源码 支持二开和私有化部署
  • 沸点 | Ultipa 图数据库金融应用场景优秀案例首批入选,金融街论坛年会发布
  • Chat GPT 用于论文润色,常用指令这里都全了
  • ts视频文件转为mp4(FFmpeg)
  • 『亚马逊云科技产品测评』活动征文|基于next.js搭建一个企业官网
  • 每天一道算法题(五)——判断一组数字是否连续,出现连续数字的时候以‘-’输出
  • Flutter笔记:目录与文件存储以及在Flutter中的使用(上)
  • Git 提交竟然还能这么用?
  • css设置下划线
  • MCU内存基础知识
  • 下载node-sass
  • Vue 3.0 中重置 reactive 定义的响应式对象数据,恢复为初始值
  • grafana面板介绍
  • 深入分析高性能互连点对点通信开销
  • 搭建 AI 图像生成器 (SAAS) php laravel
  • 详解使用asyncio实现playwright并发操作(复制源码即可运行)