H5页面判断是否是微信小程序打开

H5项目接入微信授权登录,通过 UA 区分微信还是普通浏览器:

let ua = navigator.userAgent.toLowerCase();
let isWeixin = ua.indexOf('micromessenger') !== -1;

但是在微信小程序中嵌套该页面也会被认为是微信打开并弹出授权提示。

我们需要做一下判断,小程序中打开不需要提示授权。

可以通过微信官方提供的 SDK 来判断是否是小程序环境。

安装依赖:

npm install weixin-js-sdk --save

说明:该依赖是由 yanxi 大佬将官方 js-sdk 发布到 npm,支持 CommonJS,便于 browserify,webpack 等直接使用。

官方JS源码: https://res.wx.qq.com/open/js/jweixin-1.6.0.js

使用说明: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

在需要的页面引入:

import wx from 'weixin-js-sdk'

在页面中判断:

wx.miniProgram.getEnv(res => {
  if (res.miniprogram) {
    alert("miniProgram");
  } else {
    alert("weChat");
  }
})

再根据业务需求编写逻辑就可以了。

 

直接引入

用小程序提供的wx.miniProgram.getEnv可以获取环境参数

<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>
转自:https://www.cnblogs.com/daipianpian/p/10288675.html

用小程序提供的wx.miniProgram.getEnv可以获取环境参数

<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>
转自:https://www.cnblogs.com/daipianpian/p/10288675.html

相关文章

概述 消息能力是小程序能力中的重要组成,我们为开发者提供了...
判断H5页面环境在微信中还是小程序中 用小程序提供的wx.mini...
wx.reLaunch和wx.navigateTo,wx.navigateTo的区别 2019-03-...
微信小程序如何从数组里取值_微信小程序 传值取值的几种方法...
H5项目接入微信授权登录,通过 UA 区分微信还是普通浏览器:...
微信小程序获取data-xx=&quot;&quot;属性的值,自定...