import Taro from "@tarojs/taro"
interface IDeviceInfo extends
Omit<Taro.getDeviceInfo.Result, 'deviceAbi' | 'CPUType'> {
}
// 获取设备基础信息,兼容新旧 API
export function getDeviceInfo(): IDeviceInfo {
// 先判断 Taro.canIUse 能否使用新的 API
if (Taro.canIUse('getDeviceInfo')) {
return Taro.getDeviceInfo()
}
return Taro.getSystemInfoSync()
}
// 获取窗口信息,兼容新旧 API
export function getWindowInfo(): Taro.getWindowInfo.Result {
// 先判断 Taro.canIUse 能否使用新的 API
if (Taro.canIUse('getWindowInfo')) {
return Taro.getWindowInfo()
}
return Taro.getSystemInfoSync()
}
// 获取应用基础信息,兼容新旧 API
export function getAppBaseInfo(): Taro.getAppBaseInfo.Result {
// 先判断 Taro.canIUse 能否使用新的 API
if (Taro.canIUse('getAppBaseInfo')) {
return Taro.getAppBaseInfo()
}
return Taro.getSystemInfoSync()
}
这个功能解决了什么问题?
你期望的组件设计是怎样的?
代码中通过 getSystemInfoSync 获取相应信息的地方,使用上面的方法兼容一下新老 api