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~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,361评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,711评论 19 139
  • 转载链接 注:本文转载知乎上的回答 作者:初雪 链接:https://www.zhihu.com/question...
    pengshuangta阅读 29,344评论 9 295
  • 给提问的开发者的建议:提问之前先查询 文档、通过社区右上角搜索搜索已经存在的问题。 写一个简明扼要的标题,并且...
    极乐叔阅读 14,657评论 0 3
  • Objective 你对今天学的记得什么? 听小也电台的一篇文章,用一年时间成为一个牛人。今天开始做一件能持续一年...
    徐伟豪阅读 221评论 1 0

友情链接更多精彩内容