美文网首页
微信 jweixin SDK写的太low了

微信 jweixin SDK写的太low了

作者: 笨小孩81 | 来源:发表于2024-04-09 14:03 被阅读0次

    最近在开发的项目,需要H5页面需要在小程序中和浏览器中执行不同的操作,引用了https://res.wx.qq.com/open/js/jweixin-XXXX.js 各个版本。均在浏览器中无法正常工作。
    代码很简单

    wx.miniProgram.getEnv(function(res) {
           if (res.miniprogram) {
            alert(1)
           } else {
             alert(2)
           }
         })
    

    通过调试 jweixin 代码发现 getEnv的回调函数在浏览器中根本就不执行,

     getEnv: function(e) {
                        N(function() {
                            e({
                                miniprogram: "miniprogram" === r.__wxjs_environment
                            })
                        })
                    }
    

    最新更新:进一步调试发现,

    function N(e) {
            (d || p) && (r.WeixinJSBridge ? e() : n.addEventListener && n.addEventListener("WeixinJSBridgeReady", e, !1))
        }
    

    这里有问题,在这里的d 和 p 在前面赋值的

    t = navigator.userAgent.toLowerCase(),
           m = navigator.platform.toLowerCase(),
           o = !(!m.match("mac") && !m.match("win")),
           s = -1 != t.indexOf("wxdebugger"),
           d = -1 != t.indexOf("micromessenger"),
           l = -1 != t.indexOf("android"),
           u = -1 != t.indexOf("iphone") || -1 != t.indexOf("ipad"),
           p = -1 != t.indexOf("saaasdk"),
    

    那么问题来了,在浏览器中,d,p 为 false,那么 (d || p) && 后面的语句就不会执行,导致回调函数不执行。而且这个问题各个版本都没有修复。研究到这里不禁要问:腾讯!就这水平?

    相关文章

      网友评论

          本文标题:微信 jweixin SDK写的太low了

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