公司的小程序上線已經(jīng)有大半年了,可是每次開發(fā)新需求都會發(fā)現(xiàn)各種各樣的坑获列,躺坑不斷肮仁小!
最近開發(fā)一個新功能击孩,發(fā)現(xiàn)返回到地圖之后地圖的getCenterLocation 死活就沒有回調(diào), 按照以往經(jīng)驗迫悠,這種問題翻閱官方社區(qū)論壇一般就能找到解決方案了, ?可惜遺憾的是巩梢, 論壇雖然也有不少反饋這個問題创泄, 但是依然沒有一個解決方案, 要實現(xiàn)最簡代碼片段也比較困難括蝠, 實際這個問題是在界面跳轉(zhuǎn)過程中復(fù)現(xiàn)的鞠抑, 涉及到內(nèi)部的生命周期的問題也很難深入研究
找遍了google,最后發(fā)現(xiàn)一個感覺類似的問題:
http://html52.com/archives/38611.html
根據(jù)其思路發(fā)現(xiàn)其實是在onReady的時候獲取地圖的上下文的時機(jī)過早忌警,導(dǎo)致地圖組件的一些bool值還沒切換過來搁拙,導(dǎo)致getCenterLocation 可能內(nèi)部被return 掉, 連complete都沒執(zhí)行
于是我檢查了自己的代碼法绵, 確實獲取地圖上下文的時機(jī)是在onReady感混,可能也是這個問題,于是把獲取地圖上下文的那行代碼放在onShow 上面執(zhí)行礼烈, 果斷解決了問題弧满, 至于其中是什么原理, 等后面有時間再深入研究
這里就先記錄一下這類問題的解決方案