收藏
回答

都微信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;

};

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

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



回答关注问题邀请回答
收藏

1 个回答

  • 灵芝
    灵芝
    2019-09-04

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

    2019-09-04
    有用
    回复 5
    • 何以为歌
      何以为歌
      2019-09-04
      这个版本才更新了一天,目前还没有重现过
      2019-09-04
      回复
    • 灵芝
      灵芝
      2019-09-05回复何以为歌
      麻烦提供APPID看下
      2019-09-05
      回复
    • 何以为歌
      何以为歌
      2019-09-05
      wx2a013d3fabc20861 今天又出现了一次,但是基本上应该问题不大
      2019-09-05
      回复
    • 灵芝
      灵芝
      2019-09-05回复何以为歌
      嗯,我们先看看
      2019-09-05
      回复
    • 灵芝
      灵芝
      2019-10-29回复何以为歌
      你好,可以通过在onShow中调用解决
      2019-10-29
      回复
登录 后发表内容
问题标签