uni-app组件中wx.getSystemInfoSync已弃用,什么代码能更新替代?

发布于 1周前 作者 eggper 来自 Uni-App

uni-app组件中wx.getSystemInfoSync已弃用,什么代码能更新替代?

问题

wx.getSystemInfoSync 已经不用了,uniapp 组件中的代码什么能更新?

13 回复

已经在调整处理中


咱的uniapp什么时候能跟新好啊?

回复 Ares0023: 应该是下次 alpha,这次没有带上

回复 DCloud_UNI_OttoJi: 好的吧

回复 DCloud_UNI_OttoJi: 你好,下次,大概到什么时候了

请问下个版本能修复吗?何时发布下个版本?

回复 DCloud_UNI_OttoJi:你好,大约什么时候能修好发布?

调整完了吗?

正式版4.45还是一样

什么时候更新?

微信小程序开发者工具报提示: wx.getSystemInfoSync is deprecated.Please use wx.getSystemSetting/wx.getAppAuthorizeSetting/wx.getDeviceInfo/wx.getWindowInfo/wx.getAppBaseInfo instead.
initLocale @ vendor.js? [sm]:7049
parseApp @ vendor.js? [sm]:6989
createApp2 @ vendor.js? [sm]:7004
mount @ vendor.js? [sm]:6658
(anonymous) @ app.js? [sm]:26 微信小程序官方在更新迭代中对API进行了调整,wx.getSystemInfoSync 方法已经被标记为废弃(deprecated)。
如项目截图所示的多个uni组件中仍包含此API,请问下个版本能修复吗?何时发布下个版本?

两个月了这个修复还没更新到正式版中么

在uni-app开发中,wx.getSystemInfoSync 是微信小程序提供的一个同步获取系统信息的API,但在uni-app的跨平台框架下,直接使用微信小程序API是不推荐的,尤其是在考虑到兼容性和未来的维护性。为了替代 wx.getSystemInfoSync,我们可以使用uni-app提供的相应API或者通过异步方式调用微信小程序的API。

在uni-app中,推荐使用 uni.getSystemInfouni.getSystemInfoSync(注意,这里的uni.getSystemInfoSync是uni-app封装的,与微信小程序的wx.getSystemInfoSync有所不同,且uni-app封装的同步方法在不同平台上都有较好的兼容性处理)。不过,为了遵循最佳实践,推荐使用异步方法以避免阻塞主线程。

以下是一个使用 uni.getSystemInfo 的示例代码:

<template>
  <view>
    <text>系统信息: {{systemInfo}}</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      systemInfo: {}
    };
  },
  onLoad() {
    this.getSystemInfo();
  },
  methods: {
    getSystemInfo() {
      uni.getSystemInfo({
        success: (res) => {
          this.systemInfo = res;
          console.log('系统信息:', res);
        },
        fail: (err) => {
          console.error('获取系统信息失败:', err);
        }
      });
    }
  }
};
</script>

<style scoped>
/* 添加你的样式 */
</style>

在这个示例中,我们通过 uni.getSystemInfo 异步获取系统信息,并在获取成功后将信息存储到组件的 data 中。这样做的好处是不会阻塞主线程,提高应用的响应速度。

如果你确实需要在某些特定情况下使用同步方法(尽管不推荐),你可以直接使用 uni.getSystemInfoSync,但要注意其可能带来的性能问题:

onLoad() {
  try {
    const systemInfo = uni.getSystemInfoSync();
    this.systemInfo = systemInfo;
    console.log('系统信息:', systemInfo);
  } catch (err) {
    console.error('获取系统信息失败:', err);
  }
}

总之,推荐在uni-app中使用异步API来获取系统信息,以保持应用的流畅性和响应性。同时,利用uni-app的跨平台能力,可以确保你的代码在不同平台上都能正常工作。

回到顶部