收藏
回答

wx.miniProgram.getEnv在android手机vue比react返回结果慢1-2s?

if (browserEnv.isInWeixin()) { // 判断是否在微信中
  alert('isInWeixin')
  wx.miniProgram.getEnv(function (res) {
    alert('getEnv')
    if (res.miniprogram) { // 判断是否在小程序内
      cb('mini')
    } else {
      cb('wx')
    }
  })
} else {
  cb('h5')
}

两个alert中间间隔的时间vue项目和react项目相差1-2s


手机型号:华为mate20Pro,Android10,MEUI10.1.0;

微信版本7.0.19,引入weixin-js-sdk版本都是1.4.0-test;

小程序线上最低基础库1.9.97; 本地调试基础库2.10.3

回答关注问题邀请回答
收藏

1 个回答

  • 小阿丹
    小阿丹
    10-14

    根据weixin-js-sdk依赖包中的index.js中miniProgram.getEnv方法,得到判断方式是根据window.__wxjs_environment === ‘miniprogram’ 来判断是微信环境还是小程序环境,那么在后期的应用过程中直接使用window.__wxjs_environment 判断微信小程序环境是不是更快速。

    但是考虑到为什么这个方法是异步的,是否是小程序设置__wxjs_environment 与 开发者获取有可能存在先后的问题?


    最近选择的解决方案代码如下:

    这样会比之前快很多

    if(window.__wxjs_environment){ //__wxjs_environment表明在小程序内
     wx.miniProgram.getEnv(function () {}) //异步去添加WeixinJSBridgeReady监听
      cb('mini')
    }else{ //不一定在小程序内
      wx.miniProgram.getEnv(function (res) {
        if (res.miniprogram) { // 判断是否在小程序内
          cb('mini')
        } else {
          cb('wx')
        }
      })
    }
      
      
    
    10-14
    有用
    回复
登录 后发表内容
问题标签