uniapp开发小程序如何获取用户地理位置

这篇具有很好参考价值的文章主要介绍了uniapp开发小程序如何获取用户地理位置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、需求说明

需求:点击按钮获取当前微信位置,以及点击拒绝授权后,下次点击还可以拉起授权窗口;

2、言归正传

1、编写代码

模板部分

<template>
  <view>
    <button type="" @click="getLocation">获取位置</button>
    <view>经度:{{x}}</view>
    <view>纬度:{{y}}</view>
  </view>
</template>

script部分

<script>
    export default {
      data () {
        return {
          x: 0,
          y: 0
        }
      },
      methods: {
        getLocation () {
          let that = this
          // 获取用户是否开启 授权获取当前的地理位置、速度的权限。
          uni.getSetting({
            success (res) {
              console.log(res)
              // 如果没有授权
              if (!res.authSetting['scope.userLocation']) {
                // 则拉起授权窗口
                uni.authorize({
                  scope: 'scope.userLocation',
                  success () {
                    //点击允许后--就一直会进入成功授权的回调 就可以使用获取的方法了
                    uni.getLocation({
                      type: 'wgs84',
                      success: function (res) {
                        that.x = res.longitude
                        that.y = res.latitude
                        console.log(res)
                        console.log('当前位置的经度:' + res.longitude)
                        console.log('当前位置的纬度:' + res.latitude)
                        uni.showToast({
                          title: '当前位置的经纬度:' + res.longitude + ',' + res.latitude,
                          icon: 'success',
                          mask: true
                        })
                      }, fail (error) {
                        console.log('失败', error)
                      }
                    })
                  },
                  fail (error) {
                    //点击了拒绝授权后--就一直会进入失败回调函数--此时就可以在这里重新拉起授权窗口
                    console.log('拒绝授权', error)

                    uni.showModal({
                      title: '提示',
                      content: '若点击不授权,将无法使用位置功能',
                      cancelText: '不授权',
                      cancelColor: '#999',
                      confirmText: '授权',
                      confirmColor: '#f94218',
                      success (res) {
                        console.log(res)
                        if (res.confirm) {
                          // 选择弹框内授权
                          uni.openSetting({
                            success (res) {
                              console.log(res.authSetting)
                            }
                          })
                        } else if (res.cancel) {
                          // 选择弹框内 不授权
                          console.log('用户点击不授权')
                        }
                      }
                    })
                  }
                })
              } else {
                // 有权限则直接获取
                uni.getLocation({
                  type: 'wgs84',
                  success: function (res) {
                    that.x = res.longitude
                    that.y = res.latitude
                    console.log(res)
                    console.log('当前位置的经度:' + res.longitude)
                    console.log('当前位置的纬度:' + res.latitude)
                    uni.showToast({
                      title: '当前位置的经纬度:' + res.longitude + ',' + res.latitude,
                      icon: 'success',
                      mask: true
                    })
                  }, fail (error) {
                    uni.showToast({
                      title: '请勿频繁调用!',
                      icon: 'none',
                    })
                    console.log('失败', error)
                  }
                })
              }
            }
          })
        }
      },
    }
</script>

2、在manifest.json新增如下配置

原因:因为微信小程序从2019年1月14日起新提交发布的版本若未填写地理位置用途说明,则将无法正常调用地理位置相关接口;

解决办法: 在manifest.json文件中,mp-weixin属性下配置permission获取地理位置的权限

uniapp微信公众号获取位置,Java全栈开发,小程序,uni-app,小程序

"permission" : {
    "scope.userLocation" : {
        "desc" : "你的位置信息将用于小程序位置接口的效果展示"
    }
},
"requiredPrivateInfos" : [ "chooseAddress", "getLocation", "chooseLocation" ]

3、运行测试

uniapp微信公众号获取位置,Java全栈开发,小程序,uni-app,小程序

点击不授权

uniapp微信公众号获取位置,Java全栈开发,小程序,uni-app,小程序

点击授权,跳转到授权页面,修改为使用时允许

uniapp微信公众号获取位置,Java全栈开发,小程序,uni-app,小程序

重新获取位置信息

成功获取到用户的地理位置,那么就可以调用后端接口将经纬度存储到服务端使用了

uniapp微信公众号获取位置,Java全栈开发,小程序,uni-app,小程序

3、结语

1.以上就是今天分享的全部内容,小伙伴们别忘记点赞关注~

2.需要注意的是一定要进行在manifest.json文件中配置,否则会如下错误

uniapp微信公众号获取位置,Java全栈开发,小程序,uni-app,小程序

3.如果是需要上线的小程序,需要在微信公众平台开发管理->接口设置中开通接口wx.getLocation的权限,否则审核代码时候会不通过

4.制作不易,一键四连再走吧,您的支持永远是我最大的动力!文章来源地址https://www.toymoban.com/news/detail-850570.html

到了这里,关于uniapp开发小程序如何获取用户地理位置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何获取用户请求的真实ip,并返回访问者的ip地理位置?node,vue

    方式1、前端调用免费公共接口获取 前端获取访问者的真实的外网ip,可以通过调用接口https://api.ipify.org/来获取。你也可以直接在网页上访问它来看自己的外网ip。 ipify介绍: ipify是一个免费的公共 API,用于获取设备的公共 IP 地址。它通过查询服务器获取用户的 IP 地址,并将

    2024年03月15日
    浏览(39)
  • 微信小程序如何获取地理位置、地图显示,逆地址解析。

    微信严格了获取客户位置的要求,需要申请地理位置权限和声明。 自 2022 年 7 月 14 日后发布的小程序,若使用地理位置接口,需要在 app.json 中进行声明。 申请时需要选择适合的小程序类目、填写需要调用接口的理由和小程序图片或视频(可以弄点儿UI设计的图稿放进去,显示

    2024年02月07日
    浏览(43)
  • Unity之获取用户地理位置

    1.1 利用bilibili的api 【未知稳定性】 lua代码  1.2 利用baidu api 【配额超限,需要扩充配额,需要联系官方】 2.1 API: \\\"https://api.ipify.org\\\" 和 心知天气官网“心知天气 - 高精度气象数据 - 天气数据API接口 - 行业气象解决方案” 获取公网IP 根据IP获取地理信息和天气信息,json反解析

    2024年02月14日
    浏览(34)
  • uniapp获取地理位置的API是什么?

    UniApp获取地理位置的API是 uni.getLocation 。它的作用是获取用户的当前地理位置信息,包括经纬度、速度、高度等。通过该API,开发者能够实现基于地理位置的功能,如显示用户所在位置附近的商家、导航服务、天气查询等。 以下是一个示例,展示如何使用uni.getLocation来获取用

    2024年02月07日
    浏览(37)
  • Nginx通过用户IP获取所在国家及地理位置

    Nginx是一款高性能、轻量级的Web服务器和反向代理服务器。它最初设计目的是为了解决C10k问题,即如何支持10,000个以上的并发连接。Nginx采用了事件驱动的异步非阻塞模型,可以在消耗较少的系统资源下处理更多的并发连接。由于其高性能和可靠性,Nginx逐渐成为了现代Web架构

    2024年02月09日
    浏览(39)
  • 用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)

    ?php //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function   getip(){      if (! empty ( $_SERVER [ \\\"HTTP_CLIENT_IP\\\" ])){      $cip   =  $_SERVER [ \\\"HTTP_CLIENT_IP\\\" ];      }      else   if (! empty ( $_SERVER [ \\\"HTTP_X_FORWARDED_FOR\\\" ])){      $cip   =  $_SERVER [ \\\"HTTP_X_FOR

    2024年02月11日
    浏览(60)
  • uni-app获取手机号-获取用户地理位置-根据位置获取经纬度跳转高德

    1.获取手机号首先要先登录拿到code,用code去获取session_key 2.获取 code需要知道自己的AppID(小程序ID)和AppSecret(小程序密钥) 3.解密后得到手机号  登录微信公众平台拿到自己的AppID(小程序ID)和AppSecret(小程序密钥)  微信公众平台  补充获取 code: 补充 获取openId: 获取session_key:

    2024年02月03日
    浏览(63)
  • uniapp使用高德地图地理位置逆解析/将获取到的经纬度转化为地址

    1、在高德登录注册,进行个人或企业开发者认证(个人开发者可以随时升级企业开发者) 高德地图开发aip网址 2、进入控制台,按以下图示操作 添加完成之后把key复制一下。 3、使用uni.request进行请求(用什么框架就这么请求,这里示例的是uniapp),请求地址为:https://rest

    2024年02月08日
    浏览(37)
  • 微信小程序 通过获取地理位置查看天气

      1.在app.json中写入 2.申请和风天气APIKEY 和风天气开发平台 ~ 高效强大的天气API,天气SDK和天气插件 3.在js文件中设置变量 4.获取天气代码  5.根据坐标获取城市  6.获取天气情况   结束啦。

    2024年02月09日
    浏览(49)
  • 微信小程序获取地理位置失败原因及解决方案

    微信小程序获取用户地理位置失败的原因主要有3种情况: 1. 手机系统设置中地理位置未开启 2. 系统未给微信app授权 3. 用户未给小程序授权地理位置信息 所以需要继续完善下定位失败的处理逻辑。 1. 在获取地理位置信息失败后,首先判断用户手机系统定位服务是否开启 ||

    2024年02月10日
    浏览(207)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包