window.__wxjs_environment 为 Undefined
问题描述
微信小程序的 webview 中在网页内可通过window.__wxjs_environment变量判断是否在小程序环境,但是在真实项目中发现有时 window.__wxjs_environment 为 undefined;
解决方案
这个全局变量建议在WeixinJSBridgeReady回调中使用,也可以使用JSSDK 1.3.2提供的getEnv接口,代码如下:
// web-view下的页面内
function ready() {
console.log(window.__wxjs_environment === 'miniprogram') // true
}
if (!window.WeixinJSBridge || !WeixinJSBridge.invoke) {
document.addEventListener('WeixinJSBridgeReady', ready, false)
} else {
ready()
}
// 或者
wx.miniProgram.getEnv(function (res) {
console.log(res.miniprogram) // true
})