39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
|
/**
|
|||
|
* getSystemInfoSync的优化版本(在微信小程序不会提示API已过期的警告)
|
|||
|
*/
|
|||
|
|
|||
|
function getSystemInfoSync() {
|
|||
|
// #ifdef MP-WEIXIN
|
|||
|
return getCompatibleSystemInfo();
|
|||
|
// #endif
|
|||
|
// #ifndef MP-WEIXIN
|
|||
|
return uni.getSystemInfoSync();
|
|||
|
// #endif
|
|||
|
}
|
|||
|
|
|||
|
export default getSystemInfoSync;
|
|||
|
|
|||
|
// #ifdef MP-WEIXIN
|
|||
|
function getCompatibleSystemInfo() {
|
|||
|
if (wx.canIUse('getDeviceInfo') && wx.canIUse('getWindowInfo') && wx.canIUse('getAppBaseInfo') && wx.canIUse('getSystemSetting')) {
|
|||
|
const deviceInfo = uni.getDeviceInfo();
|
|||
|
const windowInfo = uni.getWindowInfo();
|
|||
|
const appBaseInfo = uni.getAppBaseInfo();
|
|||
|
const systemSetting = uni.getSystemSetting();
|
|||
|
// const appAuthorizeSetting = wx.getAppAuthorizeSetting(); // 这个API效率低,不放在这里了
|
|||
|
// 最终会少 batteryLevel 属性和 appAuthorizeSetting 属性
|
|||
|
return {
|
|||
|
devicePixelRatio: windowInfo.pixelRatio,
|
|||
|
hostFontSizeSetting: appBaseInfo.fontSizeSetting,
|
|||
|
batteryLevel: 100, // 设置一个假的固定值进去,防止出错(如果再调用电量API这效率会比较低)
|
|||
|
...deviceInfo,
|
|||
|
...windowInfo,
|
|||
|
...appBaseInfo,
|
|||
|
...systemSetting,
|
|||
|
// ...appAuthorizeSetting,
|
|||
|
};
|
|||
|
} else {
|
|||
|
return uni.getSystemInfoSync();
|
|||
|
}
|
|||
|
}
|
|||
|
// #endif
|