Taro微信小程序兼容支付宝小程序踩坑记录2

1,098 阅读2分钟

来了来了,我又来了。经过一周的开发和bug处理,以及通过双方官方api文档的比对。记录一下新的问题。 (这里特地申明一下,我项目使用的是Taro 1.3.38的版本,可能最新版本不会遇到我这样的问题。为啥不升级到最新版本,一开始是出于时间成本的问题,大版本的升级牵扯过多相关依赖版本的问题)

9ab57f8d8b082b69ae06350de079d522.jpeg

  1. 在引入Lodash使用debounce防抖动的时候,在支付宝小程序中可能会相关报错(date.now()方法报错),不管你怎么重装依赖,去modules里找,都发现不了问题所在。Taro官方的issue里的解决方案都是3.x版本的,并不适用于我的低版本。
  • 我这里的解决办法就是自己写一个myLodash.js,将项目里利用到的截流和防抖动函数通过自己文件引入: 首先是一开始的date.now()报错问题,在文件里先声明一下 function now() { return Date.now(); }

    剩下的就是export 需要的方法啦,其实这个可以我们自己写一个,或者去Lodash的git上把自己项目里需要的方法拿出来。

  1. 在调试的过程中,还有可能出现一个问题:getStorageSync的失效 Taro.getStorageSync('test')

    这样会出现获取不到数据的情况,根据支付宝小程序API文档中所写就需要改成以下这个方式

    my.getStorageSync({key: 'test'})

    这是一个巨坑!!!而且还会出现开发工具上可行,但是真机调试的时候不行的情况!这非常让人头疼。也可能是Taro版本过低的原因。那出现这个问题的时候那可用用我上一篇讲到的,到app.js文件里做环境判断统一替换API的使用方法。

温馨提示:小程序开发的时候一定要真机调试一下,有时候开发工具上或者预览上可以都不管用。这个非常坑