微信开放标签在vue中怎么使用?还有生成签名的url到底是什么?
发布于 6 年前 作者 gangzhong 14306 次浏览 来自 问答

请问微信开放标签如何在Vue中使用?现在报错:

难道还需要在Vue组件中注册一下吗?

还有,在微信开发工具上运行的时候,提示无效的签名,错误码:63002,但看了下文档,觉得应该是生成签名时使用的url有问题,请问下这个url是指什么?我现在使用的是:

```

let url = encodeURIComponent(location.href.split('#')[0])

```

现在是真的有点蒙,求各位大佬指教!

<head>
  <script src="../js/vue.js"></script>
</head>
<body>
  <div id="app">
    <div>
      <wx-open-launch-weapp id="launch-btn" 
      @launch="getApp" appid="自己的appid"
      >
      <script type="text/wxtag-template">
      <div class='btn'>打开APP</div>
      </script>
      </wx-open-launch-weapp>
    </div>
  </div>

  <script src="./js/common.js"></script>
  <script src="./js/axios.min.js"></script>
  <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
  <script>

    const app = new Vue({
      el: '#app',
      methods: {
        getApp() {
          console.log("打开app!!!!!");
        },
      },
      created() {
        let url = encodeURIComponent(location.href.split('#')[0])
        axios({
          url: "获取签名的url",
          params: {
            url
          }
        }).then(res => {
          console.log("请求签名成功:", res)
          let code = res.data.code
          if (code == "200") {
            let result = res.data.result
            let nonceStr = result.nonceStr
            let timeStamp = result.timeStamp
            let signature = result.signature
            wx.config({
              debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
              appId: WX_APPID, // 必填,公众号的唯一标识
              timestamp: timeStamp, // 必填,生成签名的时间戳
              nonceStr: nonceStr, // 必填,生成签名的随机串
              signature: signature,// 必填,签名
              jsApiList: [], // 必填,需要使用的JS接口列表
              openTagList: ['wx-open-launch-weapp'] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
            });
            wx.ready(function () {
              console.log("ready ----------------------------");

              // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中
            });
            wx.error(function (res) {
              console.log("error ----------------------------", res);
              // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名
            });
          }
        }).catch(err => {
          console.log("请求签名出错:", err)
        })
      },
    })
  </script>
</body>
1 回复

等你用的框架支持

回到顶部