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

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(黄先生)
在线留言:
微信扫码,关注我们
相关文章
  • 微信小程序的开发对公众号来说机遇还是挑战?

    微信小程序从未上线时,就被预告传得风风火火,所以就有人也在预言,说小程序在将来会取代公众号,可能是直接消灭它,也可能是取代它一把手的位置,成为新的微信新贵。这种说法也有它的道理,但在现在看来,还有另外一种说法去反驳它

  • 小程序开发文档:项目结构、页面结构、应用启动说明

    开发微信小程序,需要提前去学习了解的东西不少,比如它的运行环境、它的开发工具、它的项目结构、页面结构以及应用启动说明等等

  • 小程序【加急审核】上线啦

    近期小程序正式上线了普通开发者也可以申请的小程序加急审核通道,当普通开发者遇到特殊情况,小程序需要紧急上线时,加急审核通道就能够派上大用场了,能够帮助开发者缓解燃眉之急,对于小程序普通开发者来说,实属十一月的一大福音。

  • 口令红包小程序开发,让传播与营销变得更有趣

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

  • 适合公司与个人商家使用的3种微信小程序推广方式

    因为小程序的入口越来越广泛、功能越来越丰富、开发权限越来越低,所以它的推广方式也越来越多样化。互诚科技的小编我,站在微信小程序开发公司

  • 跨境电商能通过微信小程序开发做什么

    就目前的情况来看,跨境电商在微信小程序开发这一方面还没有多少涉猎,主要的原因不是说不想去涉及,而是很多跨境电商还不知道小程序对于他们来说可以做什么,又能给他们带来什么样的效果,所以就只能暂时以观望的姿态来看待这个微信新事物,迄待时机成熟再去发展。而关于跨境电商能通过小程序做什么这个问题,小编有一点见解: