if(!uni.canIUse('getMenuButtonBoundingClientRect')) {
uni.showModal({
title: '提示',
content: '您的微信版本或小程序基础库版本过低,可能会有部分兼容性问题,建议您升级微信至最新版本',
});
}
Vue.prototype.StatusBar = e.statusBarHeight;
let IS_ERROR = false; // 是否出错
let custom = null; //胶囊坐标
try{
custom = wx.getMenuButtonBoundingClientRect();
// 获取微信右上角胶囊坐标,此API会有偶发性故障,官方预计在 微信版本 7.0.6 修复
if(custom&&custom.height) {
if(custom.bottom==0||custom.top==0) { IS_ERROR = true }
else{ uni.setStorageSync('customInfo', custom) }
}else{ IS_ERROR = true }
}catch(e){ IS_ERROR = true }
// getMenuButtonBoundingClientRect 是否出现错误 iOS 端会有偶发性故障
// 如果出现故障,则从缓存中拿出上一次获取的正确的值
let defaultCustom = { width: 87, height: 32, left: 317, top: 50, right: 404, bottom: 82 };
// 如果第一次获取都失败,缓存里没有数据,则使用默认值,注意这不是最终解决方法
// 默认值理应在不同版本的微信和不同手机上都不一样,但我懒得判断,基本上为平均值
if(IS_ERROR) { custom = uni.getStorageSync('customInfo')||defaultCustom }
Vue.prototype.Custom = custom;
Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
Vue.prototype.BoxHeight = e.windowHeight - Vue.prototype.CustomBar - 5;
Vue.prototype.ISIPX = false;
if ((e.model.indexOf('iPhone X') > -1)||(e.model.indexOf('iPhoneX') > -1)||(e.model.indexOf('iPHoneX') > -1)) {
Vue.prototype.BoxHeight = Vue.prototype.BoxHeight - 34; // iphone X系列全面屏底部抬高 34px
Vue.prototype.ISIPX = true;
};
我都这样写了,还会报错 ?
线上版本偶发性的故障,开发工具真机调试都没有出现过这种问题
是只有管理后台有这个错误么?自己是否能复现?