支付宝小程序可以通过userAgent中包含特定字符串来判断是否处于小程序web-view环境吗
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
  // 是否在支付宝客户端内
  isAlipayClient() {
    return navigator.userAgent.indexOf('AlipayClient') > -1
  },
  isAliMiniApp() {
    return new Promise((resolve, reject) => {
      if (window.my) {
        my.getEnv((res) => {
          console.log(3, res)
          resolve(res.miniprogram || res.miniProgram)
        })
      } else {
        resolve()
      }
    })
  },

用小程序提供的wx.miniProgram.getEnv可以获取环境参数,但是他有个问题就是无法在非微信环境下判断。所以在使用wx.miniProgram.getEnv前得先判断是否在微信环境中。
解决方案
<script>
    if (/MicroMessenger/i.test(navigator.userAgent)) {
    //ios的ua中无miniProgram,很坑爹,但都有MicroMessenger(表示是微信浏览器)
        wx.miniProgram.getEnv((res)=>{
            if (res.miniprogram) {
                alert("在小程序里");
            } else {
                alert("不在小程序里");
            }
        })
    }
</script>