微信js sdk动态引用

一般情况下,微信的js-sdk只需要直接引用script即可

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

但是有的时候,当我们的网页访问的环境多样的时候,比如APP内部,手机浏览器时候,并不需要引用这个js

甚至都不需要初始化微信js-sdk的环境:例如签名等操作

那么首先得区分一下当前的网页环境是否是微信浏览器,如下:

  /**
     * 是否是微信浏览器内
     */
    IsWeiXinBrowser() {
      var ua = navigator.userAgent.toLowerCase();
      var isWeixin = ua.indexOf("micromessenger") != -1;
      if (isWeixin) {
        return true;
      } else {
        return false;
      }
    }

然后,再加载微信的js-sdk

 if (this.IsWeiXinBrowser) {
      var script = document.createElement("script");
      script.type = "text/javascript";
      script.src = "https://res.wx.qq.com/open/js/jweixin-1.2.0.js";
      document.getElementsByTagName("head")[0].appendChild(script);

      script.onload = () => {
        // 需要初始化sdk环境,等等...
      };
    }

onload函数里面通常就是获取签名和初始化wx

            let wxConfig = {
              debug: false,
              appId: config.appId,
              timestamp: config.timestamp,
              nonceStr: config.nonceStr,
              signature: config.signature,
              jsApiList: [
                "checkJsApi",
                "onMenuShareTimeline",
                "onMenuShareAppMessage",
                "onMenuShareQQ",
                "onMenuShareWeibo"
              ]
            };

            wx.config(wxConfig);

这里贴一段初始化分享功能的代码,其他功能请参考sdk文档,config对象需要后端支持返回签名结果。

以上只是部分代码,仅供参考!

原文地址:https://www.cnblogs.com/stealth7/p/9566103.html