微信 jweixin SDK写的太low了

最近在开发的项目,需要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) && 后面的语句就不会执行,导致回调函数不执行。而且这个问题各个版本都没有修复。研究到这里不禁要问:腾讯!就这水平?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值