兼容性相关
b-canvas
画图数据性能很低/加载很慢。
1. 安卓使用 - 因为小程序安卓平台,需要下载
b-canvas
依赖的so能力包
,如果没有下载下来,则会降级到使用前端浏览器中的canvas
进行渲染,但是浏览器的canvas
在Render
层,相互通信渲染都是需要损耗时间的,所以性能相对不理想。
cover-view
无法展示,过一会儿才会展示出来。
2. 安卓使用 - 安卓的
so能力包
没有下载下来,使用的时候会自动下载然后应用。
iOS
对 webp
图片支持程度。
3. 小程序 b-image
组件在 iOS 14 以下不支持webp
,cover-image
所有系统版本下都支持,所以需要业务方自己评估影响面。可参考如下代码判断是否支持webp。
function compareVersion(v1, v2) {
v1 = v1.split('.');
v2 = v2.split('.');
const len = Math.max(v1.length, v2.length);
while (v1.length < len) {
v1.push('0');
}
while (v2.length < len) {
v2.push('0');
}
for (let i = 0; i < len; i++) {
const num1 = parseInt(v1[i]);
const num2 = parseInt(v2[i]);
if (num1 > num2) {
return 1;
} else if (num1 < num2) {
return -1;
}
}
return 0;
}
function isSupportWebp() {
try {
const systemInfo = bl.getSystemInfoSync()
const systemVersion = systemInfo.system || ''
const platform = systemInfo.platform || ''
const systemVersionNumber = systemVersion.replace(/[a-zA-z]/g,'').trim()
if (platform.toLowerCase() === 'ios') {
if (compareVersion(systemVersionNumber, '14') >= 0) {
return true
}
} else if (platform.toLowerCase() === 'android') {
if (compareVersion(systemVersionNumber, '4') >= 0) {
return true
}
}
return false
} catch (error) {
return false
}
}
console.log('是否支持webp:', isSupportWebp())