微信小程序——加载PDF

前言

一般情况下,我们在遇到pdf链接需要在客户端展示的时候,都会选择使用webview来加载。
但是Android的WebView默认没有内置pdf浏览器,iOS端是支持的
在客户端,我们可以考虑用插件来解决这个平台不一致的问题
那么在小程序端怎么处理呢?

现象

使用微信小程序提供的web-view组件访问pdf
iOS可以正常访问
Android会加载页面失败请重试

解决方案

1. 将pdf转换为html
PDF转HTML传送门
ps:这个网页可以在线帮我们完成转换,支持的程度还是非常高的,转换后的html可以完美还原pdf显示与功能。缺点就是文件会变多,体积会增大,首次渲染时由于下载资源的原因会比较慢

2. 使用下载并打开的方式来展示

   openFile(url) {
        if (!(url && url.length)) {
            return;
        }
        wx.showLoading("文件加载中...");
        wx.downloadFile({
            url: url,
            success: (res) => {
                if (res.tempFilePath) {
                    wx.openDocument({
                        filePath: res.tempFilePath,
                        fail: (err) => {
                            console.error(err);
                        },
                        complete: () => {
                            wx.hideLoading();
                        }
                    })
                }
            },
            fail: (err) => {
                console.error(err);
                wx.hideLoading();
            }
        })
    }

ps:这种方式双端一致性较好,都是用插件来加载pdf的,所以几乎不存在其他问题,而且还可以支持分享等功能,推荐这种方案统一双端

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载链接 注:本文转载知乎上的回答 作者:初雪 链接:https://www.zhihu.com/question...
    pengshuangta阅读 29,121评论 9 295
  • 最近几个月因为公司的业务需求,一直在折腾小程序,从开始的完全不熟悉,到后面被各种坑折磨,是时候写一篇总结了,避免下...
    ArmorVon阅读 5,884评论 1 1
  • 0 前言 最近的工作重心一直在小程序,也开发了几个小程序,对小程序开发的流程及相关技术相对比较熟悉,在开发过程中也...
    millan_mf阅读 66,206评论 2 16
  • 开发过程中的发现 wx:for 可以变量对象,wx:for-index 为对象的 key,wx:for-item ...
    zhulichao阅读 3,570评论 0 0
  • 因新工作主要负责微信小程序这一块,最近的重心就移到这一块,该博客是对微信小程序整体的整理归纳以及标明一些细节点,初...
    majun00阅读 12,171评论 0 9

友情链接更多精彩内容