`

小程序兼容

 
阅读更多
信小程序在功能不断升级的过程中经常会发布一些新的组件和API,但是这些组件和API仅支持高版本,低版本的微信无法使用,因此需要进行兼容处理。首先,当我们在使用一个组件或API时需要先查看其官方文档上的描述页,上面会带有各个功能所支持的版本,然后再使用以下方法进行兼容:

1、通过wx.getSystemInfo或者wx.getSystemInfoSync获取到小程序的基础库版本号SDKVersion,与某功能所支持的版本进行比较。另外SDKVersion也是1.1.0版本库才引入的属性,所以对于1.1.0以下的版本该字段为undefined,不过因为新的功能往往是1.1.0及以上版本引入的,所以也可以用于比较版本。

例:
wx.getSystemInfo({
  success: function(res) {
    console.log(res.SDKVersion)
  }
})
另外getSystemInfo还能获取以下信息:

model    手机型号    
pixelRatio    设备像素比    
screenWidth    屏幕宽度    1.1.0
screenHeight    屏幕高度    1.1.0
windowWidth    可使用窗口宽度    
windowHeight    可使用窗口高度    
language    微信设置的语言    
version    微信版本号    
system    操作系统版本    
platform    客户端平台    
SDKVersion    客户端基础库版本    1.1.0
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的参数或者返回值有新增的参数,可以判断用以下代码判断:

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

作者:june5253
链接:https://www.jianshu.com/p/0fba6a687fea
分享到:
评论

相关推荐

    微信小程序兼容及性能优化

    微信小程序兼容及性能优化 微信小程序的性能优化是一个非常重要的课题,因为小程序的性能直接影响用户的使用体验。在微信小程序中,性能优化可以从多方面入手,包括小程序的版本和微信版本的兼容性测试、性能测试...

    Zblog多端小程序 兼容百度、微信、QQ小程序 开源源码升级

    基于uniapp开发的多端zblog小程序,目前已兼容 百度、微信、QQ。 本次1.0.2版本升级如下: 1.对所有列表UI样式进行优化 2.新增分类菜单页、分类列表页; 3.针对微信小程序添加了分享功能; 4.由于文章数据过大...

    (绿色版)保护眼晴的漂亮定时小程序兼容win7哦

    保护眼晴的漂亮定时小程序兼容win7哦,你可以设置提醒的分钟数,在还剩一分钟的时候,它会自动提醒,并且是纯绿色,不需要安装的小程序

    百变鹏仔Zblog多端小程序 兼容百度、微信、QQ小程序 开源源码升级.zip

    基于uniapp开发的多端zblog小程序,目前已兼容 百度、微信、QQ。 本次1.0.2版本升级如下: 1.对所有列表UI样式进行优化 2.新增分类菜单页、分类列表页; 3.针对微信小程序添加了分享功能; 4.由于文章数据过大...

    百变鹏仔Zblog多端小程序 兼容百度、微信、QQ小程序 开源源码升级

    基于uniapp开发的多端zblog小程序,目前已兼容 百度、微信、QQ。 本次1.0.2版本升级如下: 1.对所有列表UI样式进行优化 2.新增分类菜单页、分类列表页; 3.针对微信小程序添加了分享功能; 4.由于文章数据过大...

    百变鹏仔Zblog多端小程序 兼容百度、微信、QQ小程序 开源源码升级.rar

    基于uniapp开发的多端zblog小程序,目前已兼容 百度、微信、QQ。 本次1.0.2版本升级如下: 1.对所有列表UI样式进行优化 2.新增分类菜单页、分类列表页; 3.针对微信小程序添加了分享功能; 4.由于文章数据过大...

    微信小程序和支付宝小程序API兼容插件

    微信小程序和支付宝小程序API兼容插件是为了解决在跨平台开发过程中遇到的API不一致问题而设计的工具。这个插件允许开发者使用统一的API接口来编写代码,从而实现一次编写,两端运行的目标,极大地提高了开发效率和...

    微信小程序兼容性问题

    微信小程序兼容性问题 微信小程序发布一周多了,兼容性问题,特别是 Android 平台兼容性问题特别严重。据我观察,好多小程序掉到兼容性的坑里。掉坑里不要紧,更让人捉急的是,从坑里爬上来的时候,手刚抓到坑沿,又...

    微信小程序 Cryptojs 解密工具包

    7. 兼容性:由于微信小程序的运行环境限制,工具包可能已经解决了与微信小程序兼容性的问题,使得开发者无需担心底层实现的细节。 总的来说,"微信小程序 Cryptojs 解密工具包"为开发者提供了一套完整的加密解决...

    微信小程序开发同步动态转换为支付宝小程序.zip

    此外,这个工具可能还会处理微信小程序特有的API调用,将其转换为支付宝小程序兼容的API。 4. 开发流程: 使用此转换工具时,开发者首先需要将微信小程序的源代码导入到工具中,然后工具会进行语法分析和转换。...

    微信小程序2020最新全部地址数据json格式

    微信小程序2020最新全部地址数据json格式

    微信小程序与webservice(.net)数据交互用例

    这个方法可能使用XML或JSON格式的数据,因为这两种格式都与微信小程序兼容。 为了使微信小程序能调用Webservice,我们需要在JS文件中使用`wx.request`方法。此方法接受一个参数对象,包含URL(指向Webservice的地址...

    DIY小程序,DIY手机壳,手机壳DIY,DIY制作,相关的小程序前端示例代码,已兼容抖音、微信小程序

    DIY小程序,DIY手机壳,手机壳DIY,DIY制作,相关的小程序前端示例代码,基于UNIAPP,已兼容抖音、微信小程序;.zip

    微信小程序嵌入H5页面播放监控webrtc视频流1~2秒画面延迟,安卓和ios都兼容

    在微信小程序中嵌入H5页面来播放监控视频流,特别是使用WebRTC技术,可能会遇到1到2秒的画面延迟问题,而这个问题需要针对iOS和Android两大操作系统进行优化以实现良好的兼容性。以下将详细探讨这一主题,以及如何...

    自动关机小程序

    在描述中提到,这个小程序兼容“XP”,“WIN2003”,以及“WIN7”操作系统,这意味着它是为较旧的Windows版本设计的,可能不包含对最新Windows系统的支持。 在Windows系统中,自动关机功能可以通过多种方式实现,...

    兼容小程序的jsEncrypt.js文件及压缩过的jsencrypt.min.js文件

    在这个场景中,我们关注的是两个特定的JavaScript文件:`jsEncrypt.js` 和 `jsencrypt.min.js`,它们与小程序兼容,并且涉及到加密功能。这两个文件是`jsencrypt`库的不同版本。 `jsEncrypt.js` 是一个JavaScript...

    微信小程序下运行最新TensorFlowJS的解决方案.zip

    注意选择合适的小程序兼容版本,避免因API不兼容导致的问题。 在代码中,我们可以通过`wx.createSelectorQuery()`获取DOM元素,并利用`wx.request()`加载模型数据。模型的权重文件通常以二进制格式存储,我们需要将...

    一套把React Native代码转换成微信小程序代码的转换引擎工具

    这样的工具通过解析和转换RN项目中的JSX、样式和组件,将其转化为与微信小程序兼容的代码结构。这样,开发者就可以利用已有的RN项目基础,快速地将应用适配到微信小程序平台,无需从头开始编写小程序代码。 转换...

    小程序兼容安卓和IOS数据处理问题及坑

    最近开发微信小程序,遇到到过种坑,例如什么前端发送请求,后端请求成功,没有获取到前端传递的值;后端请求成功,并且值,前端就是出不来数据;请求接口出现Provision headers are shown的现象;到最后苹果手机上...

    parser.min.zip

    7. **事件绑定**:富文本中的链接、按钮等元素需要能够响应用户的触摸事件,解析器应支持将HTML中的事件监听器转换为小程序兼容的事件处理函数。 8. **兼容性**:由于不同平台的小程序环境可能存在差异,解析器需要...

Global site tag (gtag.js) - Google Analytics