在uniapp开发过程中,各端的一些高度会有区别,为了方便,就要统一放到全局变量中。
一开始使用Vue.prototype,在h5和App中使用都没问题,但打包微信小程序测试时,发现取不到这里的值。
遂改用Vuex,在onLaunch的时候把这些值放到state里边,然后在页面中使用,就可以了。
特此记录。
// 使用Vue.prototype,在h5,App中表现OK,微信小程序页面中取不到值
uni.getSystemInfo({
success: function(e) {
Vue.prototype.statusBar = e.statusBarHeight
// #ifndef MP
if (e.platform == 'android') {
Vue.prototype.CustomBar = e.statusBarHeight + 50
} else {
Vue.prototype.CustomBar = e.statusBarHeight + 45
}
// #endif
// #ifdef MP-WEIXIN
let custom = wx.getMenuButtonBoundingClientRect()
Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight
// #endif
// #ifdef MP-ALIPAY
Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight
// #endif
}
})
// 放到Vuex中,小程序也能正常使用了。
this.$store.commit('setCustomBar',Vue.prototype.CustomBar)