一段怪案IOS-微信小程序-pdf-预览问题

40次阅读

共计 774 个字符,预计需要花费 2 分钟才能阅读完成。

问题背景

需要很简略,咱们的一个小程序须要实现 pdf 预览,通过调研,微信小程序的文档有个文档预览 api: wx.openDoucument,另外,这个接口只能关上本地文件,所以要配合另外一个接口 wx.downloadFile, 把网络文件下载到本地。

问题 1: IOS 微信小程序常常打不开 pdf

咱们很快就用微信的 api 实现了预览性能,android 机一切正常,iOS 遇到一个问题:常常打不开预览,极少数状况能关上。打印日志,wx.downloadFilewx.openDoucument 接口调用都是胜利的。

问题 2: 微信小程序 web-view 拜访阿里 oss 弹平安提醒

通过查找,网上的小程序 pdf 预览计划根本都是:android 应用微信 api,iOS 应用 web-view 来预览,web-view 须要一个在域名根门路搁置一个校验文件,这个不算麻烦,不过咱们公布正式环境,碰到了平安提醒问题:阿里的 oss 域名在微信外面会弹平安提醒,解决方案:绑定本人的域名。

问题解决

周末,我对 iOS 不能用微信 api 预览的问题耿耿于怀,再次查找材料,还是无果,于是改回微信 api 预览计划,退出各种调试,居然发现问题没有重现,iOS 能够预览!

我有点摸不着头脑,直觉通知我,必定有哪里不一样!于是我一段一段的代码来看,最终发现端倪:iOS 应用 web-view 预览时,咱们退出了一段判断代码:判断环境是 iOS 时,应用 web-view,是 Android 时,应用微信 api。这段判断代码是微信的获取零碎信息接口,要害的点是:它是个异步接口!

我大胆判断,异步是关键所在,于是改用 setTimeout,后果是 iOS 能失常预览,这段怪案到此也就结了。

有明确线索了,再来查找材料,发现微信小程序还有其余相似问题:canvas 保留图片、网络音频下载播放都须要加个延时。

欢送交换

集体读书公众号,欢送交换!

正文完
 0