美文网首页前端开发wx
微信jssdk获取确切城市名字

微信jssdk获取确切城市名字

作者: 谢志海 | 来源:发表于2016-07-14 15:14 被阅读6685次

步骤

  • 与服务端通信获取签名
  • 配置jssdk
  • 获取详细经纬度后反查腾讯地图得到确切地址
  • 正则匹配已开通服务城市,匹配成功跳到具体城市

前提

先把需要的js文件引入,因为有时在断网情况下测试,所以我把js文件都下到本地。
http://map.qq.com/api/js?v=2.exp
https://res.wx.qq.com/open/js/jweixin-1.0.0.js

  <script charset="utf-8" src='jweixin-1.0.0.js'></script>
  <script charset="utf-8" src="qqmap.js"></script>

与服务端通信获取签名

      Vue.http({
        method: 'POST',
        url: '/wechat/signature4customer',
        headers: {
          'Content-Type': 'application/json'
        },
        data: {
          'url': encodeURIComponent(window.location.href.split('#')[0])
        }
      })

配置jssdk

        let appId = response.data.appId
        let timestamp = response.data.timestamp
        let nonceStr = response.data.nonceStr
        let signature = response.data.signature
        wx.config({
          debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
          appId, // 必填,公众号的唯一标识
          timestamp, // 必填,生成签名的时间戳
          nonceStr, // 必填,生成签名的随机串
          signature, // 必填,签名,见附录1
          jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
        })

获取详细经纬度后反查腾讯地图得到确切地址

        wx.ready(function () {
          wx.getLocation({
            type: 'wgs84',
            success: function (res) {
              // 地址解析:http://lbs.qq.com/javascript_v2/guide-service.html#link-four
              let geocoder = new qq.maps.Geocoder({
                complete: function (result) {
                  resolve(result.detail.address)
                }
              })
              var coord = new qq.maps.LatLng(res.latitude, res.longitude)
              geocoder.getAddress(coord)
            }
          })
        })

正则匹配已开通服务城市,匹配成功跳到具体城市

          wx.getLocation().then(function (res) {
            for (let i in self.cities) {
              let city = self.cities[i]
              if (city.parent === 0) {
                continue
              }
              let patt = new RegExp(city.name)
              if (patt.test(res)) {
                self.city = [city.parent, city.value]
                return
              }
            }
          })

结语

跳到具体城市那里根据不同业务和不同数据结构可能稍作不同,但原理均是大同小异。

相关文章

  • 微信jssdk获取确切城市名字

    步骤 与服务端通信获取签名 配置jssdk 获取详细经纬度后反查腾讯地图得到确切地址 正则匹配已开通服务城市,匹配...

  • 腾讯调取城市地图接口

    最推荐的方式 第二种方式(腾讯的微信地图接口,但是需要配置jssdk) 获取城市的接口

  • PHP微信公众号后台开发(Yii2实现)

    本文内容较多,包括微信接入、获取微信用户信息、微信支付、JSSDK配置参数获取等部分。如果读者对微信开发没有一个主...

  • 2017-3-30_工作报告

    工作内容 fix ifish后台查看供应商电话显示错误 调试微信jssdk接入 汇车替换jssdk api来获取地...

  • 微信公众号配置

    微信授权配置(WEB端设置) 微信JSSDK配置(WEB端设置) 微信JSSDK配置(后台设置)

  • 微信JSSDK分享功能使用

    微信jssdk初始化 微信支付调用

  • Facebook接口

    1.H5 登录 1.1 使用jssdk登录 1.2 手动配置登录:类似于微信的先获取code,后获取access_...

  • SSM实现JSSDK

      最近有对接微信的JSSDK,大概流程如下,先获取全局access_token(注意:这里的access_tok...

  • 接入jssdk

    微信jssdk说明文档详细介绍了,微信网页开发接入jssdk的流程:http://mp.weixin.qq.com...

  • 微信JSSDK配置

    微信JSSDK配置 WEB端操作

网友评论

    本文标题:微信jssdk获取确切城市名字

    本文链接:https://www.haomeiwen.com/subject/nabejttx.html