产生背景

公司之前上线了一个字节小程序,发布在了抖音上,这次有一些内容的改动,在做完后,测试告诉我有一处路由跳转功能失效,在出问题手机上打开调试排查代码过程中,发现了 getCurrentPage 的问题

问题解决

随后在排查问题中发现了字节跳动小程序 getCurrentPage 函数在不同版本上的问题,主要原因在于抖音低版本所对应的基础库版本造成的。出问题的点是通过 getCurrentPage 函数执行后的返回里想使用 route 来获取路径信息,出问题手机上的抖音 app 版本是 10 左右,所对应的基础库版本未知,因为当想查看的时候测试已经把抖音版本升级到最新的 18 了。在抖音 10 的版本中 getCurrentPage 返回里,是没有 route 属性的,只有_**_route___**属性。如下图:

可以看到只有_**route**属性,但在最新版本的抖音中,可以看到有三个属性来表示当前路径,分别是 is、route、route___,如下图:


所以之前公司上线的版本没有出现这次复现的问题,因此可以对 getCurrentPage 函数的返回做一下兼容处理

1
2
const page = getCurrentPage();
const pagePath = page.__route__ || page.route;