收藏
回答

都微信7.0.6的微信版本了,获取胶囊位置的api还有问题 ?

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;

};

我都这样写了,还会报错 ?

线上版本偶发性的故障,开发工具真机调试都没有出现过这种问题



最后一次编辑于  09-04  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • nickname
    nickname
    09-04

    是只有管理后台有这个错误么?自己是否能复现?

    09-04
    赞同
    回复 4
    • 何以为歌
      何以为歌
      09-04
      这个版本才更新了一天,目前还没有重现过
      09-04
      回复
    • nickname
      nickname
      09-05回复何以为歌
      麻烦提供APPID看下
      09-05
      回复
    • 何以为歌
      何以为歌
      09-05
      wx2a013d3fabc20861 今天又出现了一次,但是基本上应该问题不大
      09-05
      回复
    • nickname
      nickname
      09-05回复何以为歌
      嗯,我们先看看
      09-05
      回复
问题标签