if (browserEnv.isInWeixin()) { // 判断是否在微信中
alert('isInWeixin')
wx.miniProgram.getEnv(function (res) {
alert('getEnv')
if (res.miniprogram) { // 判断是否在小程序内
cb('mini')
} else {
cb('wx')
}
})
} else {
cb('h5')
}
两个alert中间间隔的时间vue项目和react项目相差1-2s
手机型号:华为mate20Pro,Android10,MEUI10.1.0;
微信版本7.0.19,引入weixin-js-sdk版本都是1.4.0-test;
小程序线上最低基础库1.9.97; 本地调试基础库2.10.3
根据weixin-js-sdk依赖包中的index.js中miniProgram.getEnv方法,得到判断方式是根据window.__wxjs_environment === ‘miniprogram’ 来判断是微信环境还是小程序环境,那么在后期的应用过程中直接使用window.__wxjs_environment 判断微信小程序环境是不是更快速。
但是考虑到为什么这个方法是异步的,是否是小程序设置__wxjs_environment 与 开发者获取有可能存在先后的问题?
最近选择的解决方案代码如下:
这样会比之前快很多
if(window.__wxjs_environment){ //__wxjs_environment表明在小程序内 wx.miniProgram.getEnv(function () {}) //异步去添加WeixinJSBridgeReady监听 cb('mini') }else{ //不一定在小程序内 wx.miniProgram.getEnv(function (res) { if (res.miniprogram) { // 判断是否在小程序内 cb('mini') } else { cb('wx') } }) }