H5页面使用JS判断小程序环境,跳转本小程序的页面或另一个小程序

最近有个项目需求,H5页面在小程序中打开时需要隐藏一些功能。
要想实现,必须判断出当前环境是小程序环境。
方法1:

引入微信js(例如:“https://res.wx.qq.com/open/js/jweixin-1.3.2.js”     “jweixin-1.4.0.js”)

代码:

// 需要注意的是该判断是异步执行,所以如果把判断结果赋值给了一个全局变量,有可能出现判断错误,为了逻辑严谨,可以把下面的函数,再次封装,在使用的时候,进行调用。

// 1. 直接判断 写逻辑
if (typeof wx == 'object') { //是否成功引入js
    wx.miniProgram.getEnv(function(res) {
       if (res.miniprogram) { 
            //值为true,miniprogram 全小写字母
            // 如果跳本小程序的其他页面
           wx.miniProgram.navigateTo({url: '/path/to/page'})

            // 如果跳另外一个小程序中
            wx.navigateToMiniProgram({
                  appId: '', //要打开的小程序 appId 必填
                  path: 'page/index/index?id=123', //打开的页面路径,如果为空则打开首页。
                  extraData: { //需要传递给目标小程序的数据
                      foo: 'bar'
                  },
                  success(res) {// 成功的回调函数
                        // 打开成功
                  }
            })
       }
    })
}



// 2. 封装判断 小程序环境
        var isMiniProgram = false; //全局变量
        function validateWxMiniProgram(callback) {
           
            wx.miniProgram.getEnv(function (res) {
                isMiniProgram = res.miniprogram;
                callback();
            });

        }

//在使用的时候调用(特别是页面初始化的时候需要用到) ;如果确定已经判断过了,就直接使用变量来判断就行。
validateWxMiniProgram(()=>{
    
    if(isMiniProgram){
        // 小程序环境中需要进行的逻辑
        // ...
    } else {
        console.log('非小程序环境')
    }
})

判断微信浏览器 封装函数

function isWxClient(){
  var ua = window.navigator.userAgent.toLowerCase();
  //通过正则表达式匹配ua中是否含有MicroMessenger字符串
  if(ua.match(/MicroMessenger/i) == 'micromessenger'){
      return true;
  }else{
      return false;
  }
}

方法2:

如果项目允许的情况下,在配置链接时,带一个指定的参数。

通过js获取链接参数判断。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值