pdf+iphone+wechat

可能不少人要问,为啥标题取这个名字。html

由于今天在这个上面踩了太多坑。。chrome

咱们的需求其实很简单。作一个页面,把pdf文档嵌进去,在线显示。浏览器

如此需求,放在PC上chrome浏览器,一个embed标签就搞定了。但是碰到上面三个组合,就SB了。。安全

主要就是三个坑:微信

1)pdf在safari中,若是采用embed标签内嵌入html,那么只能显示第一页,剩下的没法显示,更没法用滚动的方式查看。网站

2)经过使用微信扫一扫功能,得到的网址腾讯会进行安全性检查,只有正式备过案的域名才能够直接跳转显示。可是,咱们的视频,音频,文档等资源都存放在AWS的S3上面。于是不能直接跳转到这些资源的S3连接上。必需要经过一个html页面进行封装,只要封装的html网页的域名是备过案的,那么就不会被腾讯审核。后来通过试验,发现mp4,mp3,jpg等常见媒体资源可用这种方式逃过检查,可是pdf这种资源经过embed标签内嵌的时候仍旧会触发微信的检测机制。多是由于pdf须要调用浏览器显示插件,额外触发了微信的二次审核。url

3)pdf文档的连接必然被微信的审核。表面上看,所谓审核就是弹出一个页面,提示“非微信官方网页 转换为手机预览模式”。若是点击肯定,那就跳转到目标网页。问题就出在这儿,跳转以后并非简单的跳转,而是在原来的url后面加了一个nsukey这么一个参数。为了防止资源盗链,咱们对s3的连接作了签名处理,这下无端多出一个get请求参数,签名被破坏,以至于没法访问到对应的资源。坑爹!插件

万般无奈之下,只能作一个页面,提示用微信扫描二维码进入该页面的用户,用其余浏览器打开该网站,而后直接访问咱们提供的通过签名的原始资源连接。如此一来,浏览器便能正确完整打开pdf文档了。视频

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息