zoukankan      html  css  js  c++  java
  • 微信小程序--兼容

    小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容。

    文档会在组件,API等页面描述中带上各个功能所支持的版本号。

    可以通过 wx.getSystemInfo 或者 wx.getSystemInfoSync 获取到小程序的基础库版本号。

    也可以通过 wx.canIUse 详情 来判断是否可以在该基础库版本下直接使用对应的API或者组件

    兼容方式 - 版本比较

    微信客户端和小程序基础库的版本号风格为 Major.Minor.Patch(主版本号.次版本号.修订号)。 开发者可以根据版本号去做兼容,以下为参考代码:

    function compareVersion(v1, v2) {
      v1 = v1.split('.')
      v2 = v2.split('.')
      var len = Math.max(v1.length, v2.length)
    
      while (v1.length < len) {
        v1.push('0')
      }
      while (v2.length < len) {
        v2.push('0')
      }
    
      for (var i = 0; i < len; i++) {
        var num1 = parseInt(v1[i])
        var num2 = parseInt(v2[i])
    
        if (num1 > num2) {
          return 1
        } else if (num1 < num2) {
          return -1
        }
      }
    
      return 0
    }
    
    compareVersion('1.11.0', '1.9.9')
    // 1

    兼容方式 - 接口

    对于新增的 API,可以用以下代码来判断是否支持用户的手机。

    if (wx.openBluetoothAdapter) {
      wx.openBluetoothAdapter()
    } else {
      // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
      wx.showModal({
        title: '提示',
        content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
      })
    }

    兼容方式 - 参数

    对于 API 的参数或者返回值有新增的参数,可以判断用以下代码判断。

    wx.showModal({
      success: function(res) {
        if (wx.canIUse('showModal.cancel')) {
          console.log(res.cancel)
        }
      }
    })

    兼容方式 - 组件

    对于组件,新增的组件或属性在旧版本上不会被处理,不过也不会报错。如果特殊场景需要对旧版本做一些降级处理,可以这样子做。

    Page({
      data: {
        canIUse: wx.canIUse('cover-view')
      }
    })
    <video controls="{{!canIUse}}">
      <cover-view wx:if="{{canIUse}}">play</cover-view>
    </video>
  • 相关阅读:
    【leetcode】9 longest common prefix
    4月份需要整理的问题总结
    JavaScript DOM 编程艺术(第2版)---P1~P9
    JavaScript DOM 编程艺术(第2版)---序中故
    18年3月周末问题汇总
    三目运算+传参+封装的运用实例
    git学习参考博客
    jq实现类名(class)的增删改查
    ztree树集使用(2)
    word2010在正常关闭的情况下,点了“不保存”,如何恢复
  • 原文地址:https://www.cnblogs.com/puzi0315/p/9005237.html
Copyright © 2011-2022 走看看