uni-app wx.getSystemInfoSync接口已弃用 请开发人员即时更新

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

uni-app wx.getSystemInfoSync接口已弃用 请开发人员即时更新

示例代码:

新建最新版 空项目,编译微信小程序

操作步骤:

新建最新版 空项目,编译微信小程序

预期结果:

无此警告

实际结果:

警告 wx.getSystemInfoSync is deprecated. Please use wx.getSystemSetting/wx.getAppAuthorizeSetting/wx.getDeviceInfo/wx.getWindowInfo/wx.getAppBaseInfo instead.

[Deprecation] SharedArrayBuffer will require cross-origin isolation as of M92, around July 2021. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details.

bug描述:

新建最新版 空项目,编译微信小程序后 报
wx.getSystemInfoSync is deprecated. Please use wx.getSystemSetting/wx.getAppAuthorizeSetting/wx.getDeviceInfo/wx.getWindowInfo/wx.getAppBaseInfo instead.
与启用警告
[Deprecation] SharedArrayBuffer will require cross-origin isolation as of M92, around July 2021. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details.
说明是基础库中存在 小程序即将放弃的wx.getSystemInfoSync 代码引用.请开发人员即时更新

开发环境信息

项目创建方式 CLI版本号 基础库版本号 PC开发环境操作系统 PC开发环境操作系统版本号 第三方开发者工具版本号
CLI 3.0.0-alpha-4030220241101001 3.6.3 Windows 26100.1742 1.06.2409140 Stable

6 回复

而且uni-ui组件里面也有调用该API组件,希望这个问题能得到解决

目前还没有解决

目前还没解决

目前还没解决

在uni-app的开发中,确实需要注意到wx.getSystemInfoSync接口已经被官方弃用的情况。为了保持应用的兼容性和稳定性,我们需要及时采用新的API来替代原有的同步接口。在uni-app框架中,对于获取系统信息的需求,可以使用uni.getSystemInfoSync或者异步的uni.getSystemInfo

由于wx.getSystemInfoSync是微信小程序中的API,而uni-app推荐使用自己的API体系,这里我们主要关注uni.getSystemInfoSync的使用,同时提及异步版本的用法以供参考。

使用uni.getSystemInfoSync替代wx.getSystemInfoSync

首先,确保你的uni-app项目已经是最新的依赖版本。在需要使用系统信息的页面或组件中,可以直接调用uni.getSystemInfoSync来获取系统信息。以下是一个简单的示例:

// 获取系统信息(同步)
const systemInfo = uni.getSystemInfoSync();

console.log('系统信息:', systemInfo);

// 根据获取到的系统信息做一些逻辑处理
if (systemInfo.platform === 'android') {
    // 针对Android平台的特定处理
} else if (systemInfo.platform === 'ios') {
    // 针对iOS平台的特定处理
}

使用异步版本uni.getSystemInfo

虽然题目要求不给出建议,但了解异步版本的使用场景也是很有必要的。特别是在处理可能阻塞主线程的操作时,异步调用会是一个更好的选择。以下是异步版本的示例:

// 获取系统信息(异步)
uni.getSystemInfo({
    success: (res) => {
        console.log('系统信息:', res);
        
        // 根据获取到的系统信息做一些逻辑处理
        if (res.platform === 'android') {
            // 针对Android平台的特定处理
        } else if (res.platform === 'ios') {
            // 针对iOS平台的特定处理
        }
    },
    fail: (err) => {
        console.error('获取系统信息失败:', err);
    }
});

总结

在uni-app中,由于wx.getSystemInfoSync已被弃用,推荐直接使用uni.getSystemInfoSync来获取系统信息,保持代码的简洁性和同步调用的直观性。同时,对于可能涉及耗时操作或需要避免阻塞主线程的场景,可以考虑使用异步版本的uni.getSystemInfo

通过上述代码示例,你可以在uni-app项目中顺利替换掉已弃用的wx.getSystemInfoSync接口,确保应用的兼容性和稳定性。

回到顶部