H5使用微信开放标签和开放接口

240 阅读2分钟

ps1: 公众号ID、小程序ID、模板ID不要弄混了

  1. 绑定域名 (在对应的微信公众号后台)
    登录微信公众平台进入【公众号设置】的【功能设置】里填写【JS接口安全域名】。
  1. 引入SDK.JS文件
    <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
    或者 npm 下载, import 导入。由项目框架决定引入方式
  1. 此时存在对象变量 'wx',调用wx.config() 方法注册api接口和开放标签
  wx.config({
    debug: true, // 调试时可开启
    appId: '公众号 AppID', // 必填,公众号的唯一标识
    timestamp: 0, // 必填,生成签名的时间戳
    nonceStr: 'nonceStr', // 必填,生成签名的随机串
    signature: 'signature', // 必填,签名
    jsApiList: ['chooseImage', 'onMenuShareAppMessage'], // 必填,需要调用的 api 接口
    openTagList:['wx-open-launch-weapp'], // 需要使用的开放标签
  })
  
  /**
  如果在页面加载时,便需要调用 api 接口,则必须在 wx.ready() 中执行,以此保证开放
  接口和开放标签注册成功
  */
  wx.ready(function() {
    console.log('suceess')
    /**
    config信息验证后会执行ready方法,所有接口调用都必须在config接口获得
    结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调
    用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户
    触发时才调用的接口,则可以直接调用,不需要放在ready函数中
    */
  });
  wx.error(function(res) {
    console.log('error',res);
    /**
    config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信
    息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于
    SPA可以在这里更新签名。
    */
  });
  1. 页面中调用 api 接口和使用开放标签
    举例开放api:
    wx.ready(function () {
        wx.chooseImage(config)
        wx.onMenuShareAppMessage(config);
    });

    举例开放标签(订阅):
    <wx-open-subscribe template="模板ID,多个使用 ',' 隔开" id="subscribe-btn">
      <script type="text/wxtag-template" slot="style">
        <style>
          #subscribe-btn {
            color: #fff;
            background-color: #07c160;
          }
        </style>
      </script>
      <script type="text/wxtag-template">
        <button class="subscribe-btn">
          一次性模版消息订阅              
        </button>
      </script>
    </wx-open-subscribe>
    <script>
    var btn = document.getElementById('subscribe-btn');
    btn.addEventListener('success', function (e) {            
      console.log('success', e.detail);
    });   
    btn.addEventListener('error',function (e) {             
      console.log('fail', e.detail);
    });
    </script>

    举例开放标签(跳转小程序):
    <wx-open-launch-weapp id="subscribe-btn"
        username="小程序原始ID,gh_×××××××"
        path="默认首页">
      <script type="text/wxtag-template" slot="style">
        <style>
          #subscribe-btn {
            color: #fff;
            background-color: #07c160;
          }
        </style>
      </script>
      <script type="text/wxtag-template">
        <button class="subscribe-btn">
          跳转小程序              
        </button>
      </script>
    </wx-open-launch-weapp>
    <script>
    var btn = document.getElementById('subscribe-btn');
    btn.addEventListener('success', function (e) {            
      console.log('success', e.detail);
    });   
    btn.addEventListener('error',function (e) {             
      console.log('fail', e.detail);
    });
    </script>

[说明文档](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html#23)

ps2: 如以上前端步骤确定完成了,但是功能没有反应,请找后端确定 wx.config 中的字段值是否正确,是否【公众号==小程序】一一对应