Skip to content

[FR]: getSystemInfoSync 微信小程序从基础库 2.20.1 开始,本接口停止维护,需要兼容新老接口 #2973

@shushu2013

Description

@shushu2013

这个功能解决了什么问题?

Image

你期望的组件设计是怎样的?

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions