收藏
回答

h5跳转小程序:<wx-open-launch-weapp> 为什么不显示呢?

    <div id="wechatBtn" class="btn-wechat-mp__wrap">
        <div class="btn-wechat-mp--show" id="openBtn">
            <div class="btn-wechat-mp__icon">
            </div>
            <span>立即使用</span>
        </div>
        <wx-open-launch-weapp id="launch-btn" username="gh_01a5aa3b4944" path="pages/index/index.html">
            <script type="text/wxtag-template">
                <style>.btn { padding: 12px }</style>
                <button class="btn">打开小程序</button>
            </script>
        </wx-open-launch-weapp>
    </div>

    <script>
        var btn = document.getElementById('launch-btn');
        btn.addEventListener('launch', function (e) {
            console.log('success');
        });
        btn.addEventListener('error', function (e) {
            console.log('fail', e.detail);
        });

        var btn2 = document.getElementById('wechatBtn');
        btn2.addEventListener('click', function (e) {
            console.log("btnclick");
            onClickOpens();
        });

        function onClickOpens() {
            $.get("https://pcszmcjzs.bishan.gov.cn:8888/certout/sso/wechat/getSignature",
                { requestUrl: encodeURI(window.location.href) },
                function (res) {
                    if (res.code == 200) {
                        wx.config({
                            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
                            appId: 'wxd5c9d2cc0287ef87', // 必填,公众号的唯一标识
                            timestamp: res.data.timestamp, // 必填,生成签名的时间戳
                            nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
                            signature: res.data.signature, // 必填,签名
                            jsApiList: [
                                "onMenuShareTimeline",
                                "onMenuShareAppMessage",
                                "onMenuShareQQ",
                                "onMenuShareWeibo",
                                "onMenuShareQZone",
                                "openLocation",
                                "chooseWXPay",
                            ],// 必填,需要使用的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可以在这里更新签名。
            });
        }
    </script>


链接地址:https://wsga.gaj.cq.gov.cn/bs/home.html

回答关注问题邀请回答
收藏

1 个回答

  • 大兵
    大兵
    2021-02-01

    这样试试


    <style>
       .btn {
         padding: 12px;
         width: 100px;
         height: 80px;
       }
      </style>
    
    <wx-open-launch-weapp id="launch-btn" username="gh_01a5aa3b4944" path="pages/index/index.html">
        <template>
          <button class="btn">打开小程序</button>
        </template>
      </wx-open-launch-weapp>
    
    


    2021-02-01
    有用 1
    回复 4
    • 撒哈啦鸣人
      撒哈啦鸣人
      2021-02-01
      按钮还是没有出来
      2021-02-01
      回复
    • 撒哈啦鸣人
      撒哈啦鸣人
      2021-02-01
      这里不会调用,小程序不会被调起
      2021-02-01
      回复
    • 大兵
      大兵
      2021-02-02回复撒哈啦鸣人
      还有一种可能就是当你执行wx.config的时候,组件已经渲染出来了。你试着先不要发网络请求,把wx.config里面的内容写死。
      2021-02-02
      回复
    • 撒哈啦鸣人
      撒哈啦鸣人
      2021-02-03
      感谢感谢,最后发现是账号的问题!之前一直是用订阅号在试,试了好久才发现,后来换了服务号就可以了
      2021-02-03
      回复
登录 后发表内容
问题标签