uni-app爬坑之旅_開發一個自己的app_day10_分享學習筆記(未進行條件編譯導致的報錯)


一、未進行條件編譯導致的API未生效報錯

1.背景介紹

條件編譯算是uni-app一個很重要的特性,可以針對不同的平台執行不同的代碼,而且uni-app是一套代碼多端發布,如果專屬於某個平台的API沒有寫進條件編譯里,那么在其他平台運行代碼的時候就會報錯,今天就遇到了一個報錯,原因和未進行條件編譯有關

2.報錯信息

API 'getMenuButtonBoundingClientRect/' is not yet implemented

3.解決思路

報錯信息顯示,API getMenuButtonBoundingClientRect 未生效,網上找了一番,才知道問題出在運行平台上,getMenuButtonBoundingClientRect是微信小程序的API,但我運行的環境是H5,在H5端查詢不到對應的API,因此報錯,所以我們要加上條件編譯的代碼,進行平台區分,如果不是微信小程序平台,就不執行該代碼

4.加上以下代碼,進行平台區分,再在H5端運行,報錯就消失了

// h5 app mp-alipay不支持微信的方法
// #ifndef H5 || APP-PLUS || MP-ALIPAY
// 獲取膠囊位置,API getMenuButtonBoundingClientRect 只有在微信小程序運行的時候才會生效,H5端查看會報錯
const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
this.navBarHeight = (menuButtonInfo.bottom - info.statusBarHeight) + (menuButtonInfo.top - info.statusBarHeight)
this.windowWidth = menuButtonInfo.left
// #endif


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM