codecamp

支付宝小程序框架 兼容

小程序组件和 API 能力正在逐步完善和丰富,但是老版本支付宝客户端并不支持这些新增能力,因此建议开发者做对应的兼容性处理。

可调用接口 my.canIUse(String) 判断当前小程序的 API、入参或返回值、组件、属性等在当前版本、当前系统是否支持。

新增 API 兼容性处理

对于新增 API,可以参照下面的代码来判断当前基础库是否支持该 API:

if (my.getLocation) {
    my.getLocation();
} else {
    // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样提示
    my.alert({
       title: '提示',
       content: '当前支付宝版本过低,无法使用此功能,请升级最新版本支付宝'
    });
}

API 新增参数兼容性处理

if (my.canIUse('getLocation.object.type')) {
    // ...
} else {
    console.log('当前版本不支持该参数')
}

API 新增返回值兼容性处理

if (my.canIUse('getSystemInfo.return.storage')) {
    // ...
} else {
    console.log('当前版本不支持该返回值')
}

组件新增属性兼容性处理

组件新增属性在旧版本支付宝客户端上无法实现,也不会报错。若要对属性做降级处理可参照以下代码:

Page({
  data: {
    canIUse: my.canIUse('button.open-type.share')
  }
})
<button a:if="{{canIUse}}" open-type="share">分享小程序</button>
<button a:else onTap="shareApp">分享小程序</button>

设置最低基础库版本

为解决低版本基础库无法兼容小程序新功能的问题,开发者可设置小程序最低基础库版本要求。

开发中心 > 小程序应用 > 我的小程序,进入小程序详情页,点击左侧栏 设置,在 基础设置 栏,可设置小程序的最低基础库版本。若小程序用户使用的基础库版本低于设置的最低版本要求,则无法正常使用小程序,并将提示用户更新支付宝版本;设置版本号后,小程序需重新发版才会生效。

设置基础库版本.png

点击 最低基础库版本, 对应的 设置 按钮,可看到不同的最低基础库版本对应的受影响用户 UV 占比,即近 30 天内访问小程序的用户的基础库版本小于所选版本的占比。开发者可据此设置小程序的最低基础库版本。

最低基础库版本.png

选中需设置为最低基础库版本的版本号,点击 确定 按钮,即设置成功。

选中基础库版本.png

此时,最低基础库版本 设置项对应的 状态 变为 已设置

已设置最低基础库版本.png

常见问题

Q:小程序 API 如果不兼容该怎么处理?

A:可以使用 my.canIUse(String) 做兼容判断,如果需要可以使用 my.ap.updateAlipayClient 对支付宝端进行提示升级。

支付宝小程序框架 分包加载
支付宝小程序框架 基础库
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }