zoukankan      html  css  js  c++  java
  • pdf+iphone+wechat

    可能很多人要问,为啥标题取这个名字。

    因为今天在这个上面踩了太多坑。。

    我们的需求其实很简单。做一个页面,把pdf文档嵌进去,在线显示。

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

    主要就是三个坑:

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

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

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

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

  • 相关阅读:
    053-606
    053-605
    1019 General Palindromic Number (20分)
    1208. 翻硬币
    754. 平方矩阵 II
    1346. 回文平方
    680. 剪绳子
    1227. 分巧克力
    756. 蛇形矩阵
    429. 奖学金
  • 原文地址:https://www.cnblogs.com/ShaneZhang/p/6000513.html
Copyright © 2011-2022 走看看