uni-app wx.getSystemInfoSync接口已弃用 请开发人员即时更新
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 |
https://ask.dcloud.net.cn/question/200081
https://github.com/dcloudio/uni-app/issues/5215
已有多个issue反馈此问题了,不知道官方何时修复?
而且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
接口,确保应用的兼容性和稳定性。