美文网首页
微信公众号web开发几点总结

微信公众号web开发几点总结

作者: wwmin_ | 来源:发表于2023-11-01 16:08 被阅读0次

    1. 微信后台跳转路径使用带有/#/的路径跳转失败

    发布使用history方式, 不要使用hash模式
    发布history方式时, 需要配置一下nginx的代理

        location / {
            root   /data/web/purchase/web/;
            index  index.html;
            try_files $uri $uri/ /index.html; # 增加此处的配置
        }
    

    2. vue3 方式使用wx-open-subscribe标签问题

    因为template标签里面不支持直接写script及style等标签, 需要使用v-is="'script'" 转义一下

    <wx-open-subscribe template="7K-5P74z4uq8KtyuyDjQR6NDeu7ghwTzsfMu2grcGes" id="subscribe-btn" class="default_btn">
      <div v-is="'script'" type="text/wxtag-template" slot="style">
        <div v-is="'style'">
          .subscribe-btn { display:flex;width:100%;background-color:#03a802;align-items:center;justify-content:center; color: #fff; font-weight: bold; border:none;
          height:40px;font-size:18px; border-radius:10px;}
        </div>
      </div>
      <div v-is="'script'" type="text/wxtag-template">
        <button class="subscribe-btn">
          订阅消息
        </button>
      </div>
    </wx-open-subscribe>
    

    注意: 只有在wx-*标签内定义的style才能对button起效果

    3. 网页上使用wx-* 标签的条件

    需要引入<script type="text/javascript" src="https://res2.wx.qq.com/open/js/jweixin-1.6.0.js"></script> 文件
    并且需要在初始化的时候调用wx.config进行配置, 配置参数可通过接口调用后台发挥的参数进行拼接, 前台最好不存储敏感信息

    注意:
    后台的url应是当前路径的url, 可将此url传给后台进行处理, 以免提示加密出错
    只有配置成功了之后, wx-* 标签才会显示

    onMounted(() => {
      getJsApiConfig({url: window.location.href}).then(res => {
        wx.config({
          debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
          appId: res.appId, // 必填,公众号的唯一标识
          timestamp: res.timestamp, // 必填,生成签名的时间戳
          nonceStr: res.nonceStr, // 必填,生成签名的随机串
          signature: res.signature,// 必填,签名
          jsApiList: ['closeWindow'], // 必填,需要使用的JS接口列表
          openTagList: ['wx-open-subscribe'] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
        });
        wx.ready(() => {
          let btn = document.getElementById('subscribe-btn');
          btn.addEventListener('success', (e) => {
            showAlert("订阅成功", "成功", () => {
              alertOption.show = false;
            });
          });
          btn.addEventListener('error', (e) => {
            showAlert("请订阅推送消息, 以便在电费不足时及时告知", "提示", () => {
              alertOption.show = false;
            });
          });
        })
      })
    })
    

    相关文章

      网友评论

          本文标题:微信公众号web开发几点总结

          本文链接:https://www.haomeiwen.com/subject/wacgidtx.html