用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

0

主题

0

帖子

32

积分

攻城狮

Rank: 2

积分
32
2018-6-13 11:19:07 kakunka 攻城狮 楼主 079
本帖最后由 kakunka 于 2018-6-13 11:45 编辑

老大在开发demo的时候特意提醒要使用wx.canIUse,学习了一下官方文档,发现还要针对canIUse做兼容性判断,根据微信兼容处理文档描述某些接口每次使用之前都要进行判断,想着封装一个兼容性判断处理函数,构思如下
[JavaScript] 纯文本查看 复制代码
/**
* name:canIUse匹配string,或者是wx.XXX的函数名
* success:可以使用的处理方法
* failure:失败的处理方法
**/
const compatible = (name, success, failure) => {  
  function failureDefault() { // false -> 没有failure的情况调用默认处理(showModal或者console),有failure的时候调用failure
    if (failure) {
      failure()
    } else {
      // 默认处理
      console.error('版本不匹配')
    }
  }

  // 思路版
  // if (name.indexOf('.') !== -1) { // 根据name中是否有.执行canIUse判断或者wx.XXX判断
  //   if (wx.canIUse && wx.canIUse(name)) {
  //     success() // true -> 调用success
  //   }else{
  //     failureDefault()
  //   }
  // } else {
  //   if (wx[name]) {
  //     success()
  //   } else {
  //     failureDefault()
  //   }
  // }

  // 优化版
  if ((name.indexOf('.') !== -1 && wx.canIUse && wx.canIUse(name)) || (name.indexOf('.') === -1 && wx[name])) {
    success()
  } else {
    failureDefault()
  }
}

求指点,顺便问一下大佬们怎么处理兼容性?有木有参考代码?


发新帖
您需要登录后才可以回帖 登录 | 立即注册