js如何判断当前页面文件是嵌入在微信小程序中还是在微信公众号还是普通的h5页面

js如何判断当前页面文件是嵌入在微信小程序中还是在微信公众号还是普通的h5页面

问题描述:

js如何判断当前页面文件是嵌入在微信小程序中还是在微信公众号还是普通的h5页面

网上搜索了,答案全都是一模一样,在实际工作中返回结果是错误的,问了几个培训机构老师,都说第二天回复,然后就不了了之了

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
<script>
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i)=="micromessenger") {
        //ios的ua中无miniProgram,但都有MicroMessenger(表示是微信浏览器)
        wx.miniProgram.getEnv((res)=>{
           if (res.miniprogram) {
               alert("在小程序里");
           } else {
               alert("不在小程序里");
           }
        })
    }else{
        alert('不在微信里');
    }
</script>

你可以把 userAgent 里面的信息输出一下 进行对比。

wx.getSystemInfo https://developers.weixin.qq.com/miniprogram/dev/dev_wxwork/dev-doc/qywx-api/foundation/wxgetsysteminfo.html 你可以判断一下,环境试试,不一定行比如判断微信版本

判断当前在微信中后,应该用js调用小程序webview任意一个api,成功说明是嵌入在小程序的,失败说明是微信打开的网页