小程序 wx-open-launch-weapp 不顯示按鈕!


直接說原因:微信開發者工具不能讓其顯示按鈕! 請部署到服務器,直接使用手機測試!

請部署到服務器,直接使用手機測試!

請部署到服務器,直接使用手機測試!

請部署到服務器,直接使用手機測試!

重要的坑說三遍!

附上demo源碼 大家可以直接參考

在開發工具里可以測試簽名是否成功,成功后再到手機上測試查看按鈕是否顯示

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>跳轉小程序</title>
    </head>
    <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
    <body>
        <div>為啥按鈕不顯示?</div>
        <div>
            <wx-open-launch-weapp
                id="launch-btn"
                username="gh_xxxxxxxx"
                path="/pages/index/index.html"
            >
                <template>
                    <style>
                        .btn {
                            padding: 12px;
                            width: 100%;
                            height: 50px;
                        }
                    </style>
                    <button class="btn">打開小程序</button>
                </template>
            </wx-open-launch-weapp>
        </div>
        <script>
            // 封裝 ajax
            const getSdkPromission= () => {
                return new Promise((resolve, reject) => {
                    var data = "";
                    var xhr = new XMLHttpRequest();
                    xhr.withCredentials = false;
                    xhr.addEventListener("readystatechange", function() {
                        if (this.readyState === 4) {
                            resolve(JSON.parse(this.responseText));
                        }
                    });
                    xhr.open(
                        "GET",
                        "/wx/sdk?url=" + window.location.href.split("#")[0]
                    );
                    xhr.setRequestHeader("Accept", "application/json");
                    xhr.send(data);
                });
            };
            window.onload = function() {
                console.log("onload");
                getSdkPromission().then(res => {
                    const conf = {
                        appId: "wx124b9xxxxxxxxx74",
                        debug: true,
                        nonceStr: res.noncestr,
                        signature: res.signature,
                        timestamp: res.timestamp,
                        jsApiList: ["getLocation"], 
                        openTagList: ["wx-open-launch-weapp"] //必須必須要不調用小程序標簽渲染不出來
                    };
                    wx.config(conf);
                    //=== 獲取 config 的參數以及簽名=== end
                    wx.ready(function() {
                        // config信息驗證后會執行ready方法,所有接口調用都必須在config接口獲得結果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對於用戶觸發時才調用的接口,則可以直接調用,不需要放在ready函數中
                        console.log("wx ready");
                    });

                    wx.error(function(res) {
                        // config信息驗證后會執行ready方法,所有接口調用都必須在config接口獲得結果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對於用戶觸發時才調用的接口,則可以直接調用,不需要放在ready函數中
                        console.log("res", res);
                    });

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

微信不講武德!微信sdk1.6, 簽名,腳本加載,我全防出去了,你就讓《微信開發工具》 來!騙!來!偷襲!我這個68歲的老同志!這好嗎?這不好,我勸這位年輕人好自為之,好好反思,以后不要再犯這樣的聰明,小聰明,武林要以和為貴,要講武德,不要搞窩里斗!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM