zoukankan      html  css  js  c++  java
  • 微信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对象需要后端支持返回签名结果。

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

  • 相关阅读:
    【存货管理】存货的计价方法
    【NHibernate】列“ReservedWord”不属于表 ReservedWords
    【MySQL】MySQL中where条件的执行分析
    brew卸载&重新安装
    mac nvm安装&使用&一些问题解决方案
    python初始环境配置
    股票数据api整理
    输入一个url到页面渲染完毕过程
    自己简单封装一个promise
    节流&防抖
  • 原文地址:https://www.cnblogs.com/stealth7/p/9566103.html
Copyright © 2011-2022 走看看