H5中使用微信小程序位置API

1.导入微信jssdk

(1)vue导入

npm install weixin-js-sdk --save

(2)链式导入

<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js" type="text/javascript" ></script>

2.判断当前页面是否为微信打开的网页

 function is_weixn() {
      var ua = navigator.userAgent.toLowerCase();
      if (ua.match(/MicroMessenger/i) == "micromessenger") {
        weixinMap();
      } else {
       
      }
    }

3.向后台发送请求获取签名信息

html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去’#‘hash部分的链接(可用location.href.split(’#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。

  function  weixinMap() {
      //如果链接中有#hash部分则使用下面代码
     // var hrefUrl = encodeURIComponent(location.href.split('#')[0]);
      var hrefUrl = encodeURIComponent(location.href);
       $.ajax({
        type: 'POST',
        url: 接口地址 + hrefUrl,
        success: function (res) {
          var wxConfig = res.data;
          wx.config({
            debug: false,
            appId: '',
            timestamp: wxConfig.timestamp,
            nonceStr: wxConfig.nonceStr,
            signature: wxConfig.signature,
            jsApiList: ['getLocation', 'openLocation']
          });
           wx.ready(function (res) {
        // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
        wx.openLocation({
          latitude: 31.851159,
          longitude: 117.260537,
          success: (res) => {
            console.log("success");
          },
        });
        wx.getLocation({
          type: 'wgs84',
          success: function (res) {
            console.log("wxGetLocation", res);
          },
          fail: function (err) {
            console.log("fail", err);
          },
          cancel: function (canRes) {
            console.log('用户拒绝授权获取地理位置');
          }
         });
		}
      })
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值