高德地图2.0版本svg和canvas选择机制导致的问题
问题
内嵌在locationApp内的地图,文字模糊,给人一种山寨的既视感,如图所示。
分析
现象
通过调试和代码研究,发现当我们使用高德1.4.X版本时,无论是内嵌到locationApp,还是直接在mobile safari打开,
生成的代码都是canvas。而当我们使用高德2.0版本时,在mobile safari打开确实是canvas,而在locationApp内打开却变成了svg。
原因
客户端目前使用的是 WKWebView,而这玩意如果没有打补丁的话,会有个bug,会影响canvas的大小和像素比。一些老版本的ios尤其明显,如ios 15及之前。
当然,这是现在很少见的机型了,但并不妨碍高德地图会去判断,如果是ios,并且使用了WKWebView,并且未修复canvas可能发生的问题,就直接使用svg。
而svg在高清屏会出现失帧问题。。。也就是模糊。
解决方案
1、直接设置 window.forceWebGL = true 强行开启canvas模式。 2、ios客户端尝试去打补丁,解决目前可能已经不太会存在的古董机。