API低版本兼容处理

关键词: 微信小程序, API, 低版本, 兼容

小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容。
文档会在组件,API等页面描述中带上各个功能所支持的版本号。
可以通过 wx.getSystemInfo 或者 wx.getSystemInfoSync 获取到小程序的基础库版本号。
也可以通过 wx.canIUse 详情 来判断是否可以在该基础库版本下直接使用对应的API或者组件

在处理小程序的时候 往往需要授权操作, 而如果未授权的情况下又会很尴尬的发现没法重新授权啊(除非删除小程序或者等待一段时间授权超时之后可以重新授权), 而我刚好又碰到了另外一种情况.部分安卓手机无法弹出授权提示(登录未发现.主要体现在授权收货地址)
找了一圈发现了向下兼容的 api

bindViewAds:function(){
    console.log("点击地址");
    var that = this;
    // 检查是否可以调用地址
    if (wx.canIUse('chooseAddress')) {
    } else {
      // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
      wx.showModal({
        title: '提示',
        content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
      })
      return;
    }

    wx.chooseAddress({
      success: function (res) {
        // console.log("获取地址信息",res);
        // console.log(res.userName)
        // console.log(res.postalCode)
        // console.log(res.provinceName)
        // console.log(res.cityName)
        // console.log(res.countyName)
        // console.log(res.detailInfo)
        // console.log(res.nationalCode)
        // console.log(res.telNumber)
      },
      fail: function (res) {
        console.log("点击地址调用失败", res);
        wx.getSetting({
          success: (res) => {
            if (!res.authSetting["scope.address"]) {
              //这里是授权成功之后 填写你重新获取数据的js
              //参考:
              wx.showModal({
                title: '提示',
                content: '您未授权获取地址信息,请点击确定后同意获取地址信息',
                success: function (res) {
                  if (res.confirm) {
                    console.log('用户点击确定')
                  // 微信跳转授权页面进行操作
                    wx.openSetting({
                      success: (res) => {
                      }
                    })
                  } 
                }
              })
            }
          }
        })
      }
    })
  },

一段又臭又长的代码,在这里指示为了给出参考方案,欢迎吐槽代码写法 O(∩_∩)O~

你可能感兴趣的:(API低版本兼容处理)