公司的小程序上线已经有大半年了,可是每次开发新需求都会发现各种各样的坑,躺坑不断啊!
最近开发一个新功能,发现返回到地图之后地图的getCenterLocation 死活就没有回调, 按照以往经验,这种问题翻阅官方社区论坛一般就能找到解决方案了, 可惜遗憾的是, 论坛虽然也有不少反馈这个问题, 但是依然没有一个解决方案, 要实现最简代码片段也比较困难, 实际这个问题是在界面跳转过程中复现的, 涉及到内部的生命周期的问题也很难深入研究
找遍了google,最后发现一个感觉类似的问题:
http://html52.com/archives/38611.html
根据其思路发现其实是在onReady的时候获取地图的上下文的时机过早,导致地图组件的一些bool值还没切换过来,导致getCenterLocation 可能内部被return 掉, 连complete都没执行
于是我检查了自己的代码, 确实获取地图上下文的时机是在onReady,可能也是这个问题,于是把获取地图上下文的那行代码放在onShow 上面执行, 果断解决了问题, 至于其中是什么原理, 等后面有时间再深入研究
这里就先记录一下这类问题的解决方案