钉钉小程序webview在ios上白屏问题
背景
项目中需要做pdf的附件预览,调研了下钉钉小程序实现附件预览可以借助钉盘实现,即先将附件上传到盯盘,再利用钉盘实现附件预览,这种实现方式过于繁琐,其中还涉及到了钉盘的管理(权限,空间等),所以我们这里利用内嵌h5页面的方式去实现对应的pdf附件预览。
在小程序中嵌入h5需要使用webview标签,在安卓手机上预览正常,但是在ios上缺出现了白屏问题。
问题排查
1.首先考虑的是webview安全域名是否配置,但是未配置安全域名呈现的效果不应该是白屏,故排除。
2.通过查询资料,我们看到有说webview展示的网页必须是https的才行,因为我们测试环境是http的,所以我们换成了https,但是测试结果还是不行,所以这里不肯定不是这个原因导致的。
3.h5网页的url中不能有中文参数,我们这里传递的文件名参数有可能会是中文,尝试随便了改了参数值,确实是这个原因导致的,所以我们需要对url中的中文进行转码。
// 问题代码示例
<web-view src="https://domain.net/preview.html?fileName=测试文件.pdf&fileAddr=test.pdf"></web-view>
总结
1.钉钉小程序 webview 展示的页面地址中不能包含中文
2.钉钉小程序 webview 展示的网页可以是http协议的,并不是必须要https