我们要做一个新产品,产品设计里需要在微信浏览器里实现PDF的预览、下载和分享。
过程
首先,类似PDF这类资源的展示,第一个想到的是使用<embed>
标签,我新建了个html,里面放入<embed>
标签,先在本地Google打开了一下,展示PDF完全没问题。
HTML
这首先证明我的代码是没有错的,下面就该在真机上验证了。
然后我用链接转二维码的工具把这个链接转成了二维码,发现在手机上没有访问到这个页面。这时我才想起来这个页面是本地的,其他设备是访问不到的。
于是,我在项目里切了一个临时分支,把这个页面放到项目里,然后启动了项目,在手机微信浏览器里访问了一下,结果直接跳到了下载QQ浏览器的界面(我的手机是华为)。。。
我郁闷了,这是个什么鬼,又拿来了一部iPhone测试机,在微信里打开了这个页面,发现PDF在页面里打开了。。
原来在安卓上
<embed>
标签是不支持直接打开资源的,在ios上是可以的。
既然<embed>
标签不行,那就去网上查查看有没有其他办法呗。。
另外又在网上查到了<iframe>
和<Object>
这两个标签的实现,但是也失败了,结果和<embed>
标签一样。
结论
- 开发一款APP,可以支持预览、下载和转发;
- 开发一款小程序,支持预览和下载,不支持转发;
- 添加指导页,指导用户到其他浏览器中打开,支持下载,不支持转发,预览可将文件转成图片格式代替。