赞
踩
获取位置信息,需要保证是否授权位置信息,有几个条件是导致无法授权的原因
(1)微信应用未授权定位设置
(2)首次进入小程序未授权位置信息
(3)小程序之前阻止过授权位置信息
(4)未打开手机定位设置
- onLoad(){
- this.getAddressInfo();
- },
- methods:{
- //地址信息获取
- getAddressInfo(){
- let that=this;
- try{
- uni.getLocation({
- type: 'gcj02',
- geocode:true,//设置该参数为true可直接获取经纬度
- success: function (resF){
- console.log(resF)
- },
- fail: function (){
- //地址获取失败提示用户执行相关操作
- that.openSetting();
- }
- });
- }catch(v){
-
- }
- }
- }
代码说明
uni.getLocation({
type: 'gcj02',
geocode:true,//设置该参数为true可直接获取经纬度
success: function (resF){
console.log(resF)
},
fail: function (){
//地址获取失败提示用户执行相关操作
that.openSetting();
}
});
uni.getLocation()会触发,小程序的位置授权
正常流程在以上四个条件都满足情况下,点击确定位置授权
就会进入success函数中,获取经纬度
否则就会进入fail函数中,进行位置授权引导
- openSetting(){
- const that = this;
- uni.getSetting({
- success: (res) => {
- if (res.authSetting['scope.userLocation'] == true) {
- uni.showModal({
- title: '提示',
- content: '请打开定位权限',
- success: function(res) {
- if (res.confirm) {
- that.getAddressInfo();
- } else if (res.cancel) {
- console.log('用户点击取消');
- }
- }
- });
- } else {
- uni.showModal({
- title: '打开定位权限',
- content: '是否开启授权',
- success: res => {
- if (res.confirm) {
- uni.openSetting({
- success: (res) => {
- let authSettings = res.authSetting
- if (authSettings['scope.userLocation'] == true) {
- that.getPageList();
- } else {
- uni.showModal({
- title: '提示',
- content: '打开定位权限,自动匹配所在城市',
- success: function(res) {
- if (res.confirm) {
- that.getAddressInfo();
- } else if (res.cancel) {
- console.log('用户点击取消');
- }
- }
- });
- }
- }
- })
- } else {
- uni.showToast({
- title: '你未开通地理位置授权',
- icon: 'none'
- })
- }
- },
- })
- }
- }
- })
- },
执行以上代码,即可完成用户引导,直接使用即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。