关于微信小程序兼容性相关问题浅析

2018/3/31 18:18:50
摘要: 微信小程序官方开发者,在对其功能的不断升级过程中,会有新的组件以及API被发布,但是新的内容一般只会支持新版本、高版本

微信小程序官方开发者,在对其功能的不断升级过程中,会有新的组件以及API被发布,但是新的内容一般只会支持新版本、高版本,低版本在无法使用的情况下,需求对其进行兼容性处理。本文来说说如何对小程序新的组件与API进行兼容性处理,方法如下。

  1、利用wx.getSystemInfo或者wx.getSystemInfoSync获取版本号

通过wx.getSystemInfo或wx.getSystemInfoSync,可以让开发者去获取到小程序的基础库版本号SDKVersion,再获取到基础库版本号之后,将其与某功能所支持的版本进行比较。

例:wx.getSystemInfo({

  success: function(res) {

    console.log(res.SDKVersion)

  }

})

2、判断当前版本的适用性

利用wx.canIUse(String)去判断小程序的API、回调、参数、组件等能否在当前版本使用。

其中String参数的使用方式为,使用${API}.${method}.${param}.${options}或${component}.${attribute}.${option}方式来调用。

${API} 代表 API 名字

${method} 代表调用方式,有效值为return, success, object, callback

${param} 代表参数或者返回值

${options} 代表参数的可选值

${component} 代表组件名字

${attribute} 代表组件属性

${option} 代表组件属性的可选值

例:

wx.canIUse('openBluetoothAdapter')

wx.canIUse('getSystemInfoSync.return.screenWidth')

wx.canIUse('getSystemInfo.success.screenWidth')

wx.canIUse('showToast.object.image')

wx.canIUse('onCompassChange.callback.direction')

wx.canIUse('request.object.method.GET')

wx.canIUse('contact-button')

wx.canIUse('text.selectable')

wx.canIUse('button.open-type.contact')

需要注意的是 wx.canIUse 这个 api 本身也是需要判断是否支持的,可以先通过 if(wx.canIUse) 判断其是否支持,然后再使用 wx.canIUse 判断其他的属性是否支持。

3、判断是否兼容

对新增的新增的API进行兼容性判断,比直接通过if(api)的方式判断该能否调用。

例1:

if (wx.openBluetoothAdapter) {

    wx.openBluetoothAdapter()

} else {

    // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示

    wx.showModal({

        title: '提示',

        content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'

    })

}

例2:

加载过程中的进度框,可以避免用户在加载过程中进行操作导致混乱。

function showLoading(message) {

  if (wx.showLoading) {

    // 基础库 1.1.0 微信6.5.6版本开始支持,低版本需做兼容处理

    wx.showLoading({

      title: message,

      mask: true

    });

  } else {

    // 低版本采用Toast兼容处理并将时间设为20秒以免自动消失

    wx.showToast({

      title: message,

      icon: 'loading',

      mask: true,

      duration: 20000

    });

  }

}

function hideLoading() {

  if (wx.hideLoading) {

    // 基础库 1.1.0 微信6.5.6版本开始支持,低版本需做兼容处理

    wx.hideLoading();

  } else {

    wx.hideToast();

  }

}

4、判断API参数或返回码

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

wx.showModal({

    success: function(res) {

        if (wx.canIUse('showModal.cancel')) {

            console.log(res.cancel)

        }

    }

})

 

声明:文章"关于微信小程序兼容性相关问题浅析"为互诚科技—微信小程序开发公司的原创文章,转载请注明出处,谢谢合作!
标签:小程序开发文档
电话咨询:18011971195(黄先生)
在线留言:
微信扫码,关注我们
相关文章
  • 口令红包小程序开发,让传播与营销变得更有趣

    口令红包是在微信小程序的火爆下而催生的一种商业营销模式与手段,它的开发成本低、推广简单、适用人群广、形式趣味

  • 金融行业跟微信小程序之间可以怎么合作

    金融行业其实在小程序上线之初就有所涉及,不过就是经历了一个很尴尬的时期后,被监管局紧急叫停,低调下线。这其中很大的一部分原因就是小程序对于数据的安全性目前还无法估量,而金融行业这个对数据安全要求甚高的行业,监管局肯定不能让其随随便便就去冒险。那么,就目前的小程序开发程度与金融行业的特殊性来看,它们两者可以

  • 企业开发微信小程序,如何做到不赔反赚

    企业商家开发微信小程序的最终目的,当然是想要获取现实利益。但是,每一种投资不是一定会成功地达到目的,投资后不赚反赔的情况比比皆是。那么企业商家在做小程序时,要如何去避免这种不赚反赔的情况出现,降低失败的几率与风险,甚至做到不赔反赚?这确实是一个很现实的值得我们来讨论的问题。

  • 微信小程序运营肯定不能触碰的几个方面

    虽然微信小程序的开发是处于一个相对自由的环境,但是这不代表就没有规则需要去遵守。开发者在开发过程中以及开发后的运营上,也有一些一定不能触碰到方面,有一些必须要遵守的规则。今天的这篇推文呢,主要就是来说一下一些运营禁忌,让大家了解一下,避免以后出现触碰到而被封号的情况。

  • 如何才能使小程序有效地发挥它的优点

    我们都认为,小程序是微信之中另一个流量红利所在,并且我们也都清楚,小程序拥有“无需下载、即搜即用、用完即走“的特点。但也许很多人都不是很清晰地了解到,微信小程序要如何使用才能更加有效地发挥它的优点。所以,小编今天准备从开发者与使用者两个角度来讨论一下这个问题:

  • 微信小程序开发踩坑的点在哪?为什么?

    程序猿在开发产品时,难免会踩坑,一旦踩坑,那就不仅仅是填坑那么简单,有时候可能也会耽误开发时间,因为不能及时将产品开发出来而给工作带来麻烦。微信小程序开发也是如此,你踩或不踩,坑就在哪里,不来不去。所以,程序猿在开发小程序之前,了解一下可能埋坑的点,相信会对开发进程有所帮助。