diff --git a/packages/circle/index.ts b/packages/circle/index.ts index a9b20182..1645a938 100644 --- a/packages/circle/index.ts +++ b/packages/circle/index.ts @@ -1,8 +1,9 @@ -import { VantComponent } from '../common/component'; import { BLUE, WHITE } from '../common/color'; -import { adaptor } from './canvas'; -import { isObj } from '../common/validator'; +import { VantComponent } from '../common/component'; import { getSystemInfoSync } from '../common/utils'; +import { isObj } from '../common/validator'; +import { canIUseCanvas2d } from '../common/version'; +import { adaptor } from './canvas'; function format(rate) { return Math.min(Math.max(rate, 0), 100); @@ -70,7 +71,7 @@ VantComponent({ getContext() { const { type, size } = this.data; - if (type === '') { + if (type === '' || !canIUseCanvas2d()) { const ctx = wx.createCanvasContext('van-circle', this); return Promise.resolve(ctx); } diff --git a/packages/common/version.ts b/packages/common/version.ts index df64cc32..01311b7a 100644 --- a/packages/common/version.ts +++ b/packages/common/version.ts @@ -27,26 +27,32 @@ function compareVersion(v1, v2) { return 0; } -export function canIUseModel() { +function gte(version: string) { const system = getSystemInfoSync(); - return compareVersion(system.SDKVersion, '2.9.3') >= 0; + + return compareVersion(system.SDKVersion, version) >= 0; +} + +export function canIUseModel() { + return gte('2.9.3'); } export function canIUseFormFieldButton() { - const system = getSystemInfoSync(); - return compareVersion(system.SDKVersion, '2.10.3') >= 0; + return gte('2.10.3'); } export function canIUseAnimate() { - const system = getSystemInfoSync(); - return compareVersion(system.SDKVersion, '2.9.0') >= 0; + return gte('2.9.0'); } export function canIUseGroupSetData() { - const system = getSystemInfoSync(); - return compareVersion(system.SDKVersion, '2.4.0') >= 0; + return gte('2.4.0'); } export function canIUseNextTick() { return wx.canIUse('nextTick'); } + +export function canIUseCanvas2d() { + return gte('2.9.0'); +}