/**
* getSystemInfoSync [获取系统信息(同步版)] Promise 封装
*/
const $getSystemInfoSync = () => {
return new Promise((resolve, reject) => {
try {
const res = wx.getSystemInfoSync()
resolve(res)
} catch (error) {
console.log('wx:getSystemInfoSync fail')
const res = {}
reject(res)
}
})
}
const $getWXSystemInfo = () => {
return new Promise((resolve, reject) => {
$getSystemInfoSync().then(res => {
const sysInfo = {}
let isIphone = res.model.indexOf('iPhone') !== -1
sysInfo.isIphone = isIphone
let { screenHeight, pixelRatio } = res
// 判断ipx以上设备
if (isIphone && screenHeight >= 812) {
sysInfo.isIpx = true
} else {
sysInfo.isIpx = false
}
// 判断大屏设备
if (sysInfo.isIpx || (screenHeight > 736 && pixelRatio >= 2.5)) {
sysInfo.isFullDisplay = true
} else {
sysInfo.isFullDisplay = false
}
resolve(sysInfo)
}).catch(err => {
reject(err)
})
})
}
// 全局检测设备
globalGetSystemInfo() {
$getWXSystemInfo().then(res => {
const { isIpx, isFullDisplay } = res
this.globalData.isIpx = isIpx
this.globalData.isFullDisplay = isFullDisplay
console.log(`#App# -----> 是否iPhone: ${isIpx} <----- `)
console.log(`#App# -----> 是否大屏: ${isFullDisplay} <----- `)
if (this.systemInfoCallback) {
this.systemInfoCallback(res)
}
})
},