• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序获取实时定位、选择位置名字(可解决因授权失败造成的问题) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

若直接调用wx.getLocation获取定位,当第一次拒绝或各种原因造成的失败,下一次无法调用,本文可解决此问题

1.app.json添加

"permission": {
    "scope.userLocation": {
      "desc": "地图选点需获取您的实时位置"
    }
  }

2.在根目录建utils/util.js

const app = getApp()
import Toast from '@vant/weapp/toast/toast';
var getLocation = function (that) {
  wx.getLocation({
    type: 'gcj02',
    success: function (res) {
      // 经纬度
      var latitude = res.latitude
      var longitude = res.longitude
      wx.chooseLocation({
        success: function (res) {
          console.log(res.name);
          that.setData({
            location: res.name,
            locationShow:false
          })
        },
      })
    },
    fail: function () {
      Toast.fail("授权失败");
    }
  })
}

module.exports = {
  getLocation
}

3.页面调用

import { getLocation } from '../../utils/util.js'

  

 //地图选点
  chooseLocation(){
    //选择地址
    wx.getSetting({
      success: (res) => {
        var that = this;
        if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {//非初始化进入该页面,且未授权
          wx.showModal({
            title: '是否授权当前位置',
            content: '需要获取您的地理位置,请确认授权,否则无法获取您所需数据',
            success: function (res) {
              if (res.cancel) {
                Toast.fail("授权失败");
              } else if (res.confirm) {
                wx.openSetting({
                  success: function (dataAu) {
                    if (dataAu.authSetting["scope.userLocation"] == true) {
                      wx.showToast({
                        title: '授权成功',
                        icon: 'success',
                        duration: 1000
                      })
                      getLocation(that);
                    } else {
                      Toast.fail("授权失败");
                    }
                  }
                })
              }
            }
          })
        } else if (res.authSetting['scope.userLocation'] == undefined) {//初始化进入
          getLocation(that);
        }
        else { //授权后默认加载
          getLocation(that);
        }
      }
    })
  },

 注:

1.若只需要获取该人定位,无需调用wx.chooseLocation

2.我用的vant weapp,提示可用微信小程序原生的组件

wx.showToast({
title: `经:${longitude} 纬:${latitude}`,
icon: 'none',
duration: 1000
})

  

  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序之view,text换行,跳转发布时间:2022-07-18
下一篇:
微信小程序——页面栈及路由跳转发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap