更新记录

1.0.7(2021-05-10)

1.修复若干bug 2.优化用户体验

1.0.6(2021-03-31)

1.全新UI设计
2.增加目录设置功能
3.增加全屏切换功能
4.增加跳转功能
5.增加页码显示功能
6.增加结束浏览时,返回当前页码
7.解决放大缩小,有的pdf黑字会有黑影问题

1.0.5(2021-02-08)

1.解决部分机型无法去除标题栏问题

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


K-PdfViewerModule 简介

Pdf文件浏览android原生插件,支持横向/竖向浏览,放大查看等。支持如下:

  1. 支持目录设置及跳转指定页数
  2. 支持放大缩放
  3. 支持全屏切换浏览
  4. 支持pdf浏览结束后,返回当前阅读页码,方便用户存储,下次再打开时,传入此页码可直接停留在当前页码浏览
  5. 支持vip限制浏览功能
  6. 简单样式定制
  7. 沉浸式界面,ui友好

使用说明

本插件目前只支持本地路径,暂不支持网络路径,如果是网络路径,可先调用uni的下载api,下载成功后再调用本插件。以下代码只是常用举例,具体可根据自己的需求,参考传参介绍,参数自由组合来满足自己的需求:

/**
*本插件目前只支持本地路径,暂不支持网络路径,如果是网络路径,可先调用uni的下载api,下载成功后再调用本插件
*/
pdfDefault() {
    let that = this;
    uni.showLoading({
        title: '请稍后'
    });
    //网络地址,选调用下载方法下载到本地,再调用插件显示
    uni.downloadFile({
    url: 'http://www.gov.cn/zhengce/pdfFile/2021_PDF.pdf',
        success: function(res) {
            var filePath = res.tempFilePath;
            // 由于uni的文件路径可能为uni自己的路径,所以最好是用plus.io.convertLocalFileSystemURL()的api,将路径转化为android原生路径
            let pathPlat = plus.io.convertLocalFileSystemURL(filePath);
            const plugin = uni.requireNativePlugin('K-PdfViewerModule');
            plugin.pdfViewAction(
                {
                    path: pathPlat
                },
                result => {}
            );
        },
        complete: function() {
            uni.hideLoading();
        }
    });
},
/**
* 这里用到了我自己的另一款文件选择插件,用于选择手机中的文件,如果用户想看效果,可试用此插件,链接https://ext.dcloud.net.cn/plugin?id=2715
* 选择手机本地pdf文件后,调用pdf浏览插件即可
 */
pdfLocal() {
    // 文件选择插件
    const plugin = uni.requireNativePlugin('K-ChooseFilesModule');
    plugin.chooseFileAction({ fileTypes: ['pdf'] }, result => {
        //pdf插件
        const pluginPdf = uni.requireNativePlugin('K-PdfViewerModule');
        pluginPdf.pdfViewAction(
            {
                path: result.data[0],
                catalogue: [
                    //目录
                    { title: '章节一', page: 0, titleLevel: 1 }, //titleLevel用于标题缩进,值越大,越向右缩进,可用于标识标题类别
                    { title: '第1小节', page: 0, titleLevel: 2 },
                    { title: '第2小节', page: 0, titleLevel: 2 },
                    { title: '章节二', page: 1, titleLevel: 1 },
                    { title: '第1小节', page: 1, titleLevel: 2 },
                    { title: '第2小节', page: 1, titleLevel: 2 },
                    { title: '第3小节', page: 1, titleLevel: 2 },
                    { title: '章节三', page: 2, titleLevel: 1 },
                    { title: '第1小节', page: 2, titleLevel: 2 },
                    { title: '第2小节', page: 3, titleLevel: 2 },
                    { title: '第3小节', page: 4, titleLevel: 2 },
                    { title: '章节四', page: 5, titleLevel: 1 },
                    { title: '章节五', page: 5, titleLevel: 1 },
                    { title: '结尾', page: 22, titleLevel: 1 }
                ]
            },
            result => {}
        );
    });
},
/**
 * vip功能目录可满足只查看默认几页,然后弹出vip的弹窗,vip的弹窗内容ui由于各家需求不一致,可联系作者定制
*/
pdfLocalVip() {
    // 文件选择插件
    const plugin = uni.requireNativePlugin('K-ChooseFilesModule');
    plugin.chooseFileAction({ fileTypes: ['pdf'] }, result => {
        //pdf插件
        const pluginPdf = uni.requireNativePlugin('K-PdfViewerModule');
        pluginPdf.pdfViewAction(
            {
                path: result.data[0],
                catalogue: [
                    //目录
                    { title: '章节一', page: 0, titleLevel: 1 }, //titleLevel用于标题缩进,值越大,越向右缩进,可用于标识标题类别
                    { title: '第1小节', page: 0, titleLevel: 2 },
                    { title: '第2小节', page: 0, titleLevel: 2 },
                    { title: '章节二', page: 1, titleLevel: 1 },
                    { title: '第1小节', page: 1, titleLevel: 2 },
                    { title: '第2小节', page: 1, titleLevel: 2 },
                    { title: '第3小节', page: 1, titleLevel: 2 },
                    { title: '章节三', page: 2, titleLevel: 1 },
                    { title: '第1小节', page: 2, titleLevel: 2 },
                    { title: '第2小节', page: 3, titleLevel: 2 },
                    { title: '第3小节', page: 4, titleLevel: 2 },
                    { title: '章节四', page: 5, titleLevel: 1 },
                    { title: '章节五', page: 5, titleLevel: 1 },
                    { title: '结尾', page: 22, titleLevel: 1 }
                ],
                isHasVipLimited: true, //是否有vip限制
                pagesLimited: [0, 1], //只允许查看的页数
                totalPage: 10 //pdf总页数
            },
            result => {}
        );
    });
}
  1. 传参说明:
参数 类型 默认值 说明
path String pdf文件本地路径
isShowNaviTitle Boolean true 设置是否显示导航栏标题,不传此字段,默认显示
naviTitle String 文件名字 导航栏标题,默认不传此字段,以文件名字为标题,若文件名字长度大于10,会自动截取,格式为“xx...xx.pdf”
defaultPage int 0 pdf打开后,默认显示的页码,不传此参数,默认第0页
catalogue Array null pdf目录,不传此参数,则没有目录,目录对象有三个参考,用法请参考示例代码,这里需要注意目录对象一定要有page参数,否则不能跳转
isHasVipLimited Boolean false 设置是否需要vip功能,当设置为true时,可结合【pagesLimited】参数实现vip功能只允许查看默认页数,当浏览到最后一页时,会弹出vip相关信息弹出框,这里的ui可联系作者定制
pagesLimited Array null 只允许查看pdf中特定的页数,本参数为int类型的数组,不传此参数,默认全部页数
totalPage int null pdf文件的总页数,不传此参数,默认会读出pdf总页数,当isHasVipLimited为true时,请设置此参数

3.返回参数说明

{
"code":"0",//String类型,"0"代表成功,非"0"不成功
"msg":"success",//若code不为"0",会有错误信息提示
"curPage":2//用户结束浏览后,会返回当前用户阅读的页码,方便用户存储,下次再打开时可直接停留在当前页码
}

4.相关注意:
(1).本插件目前只支持本地路径的pdf浏览查看,如果为网络地址,可先调用uni的downloadFile方法,下载到本地后,再调用本插件,具体可查看 <使用说明>--<调用方法>中相关代码的说明;关于网络地址的pdf,我现在不知道需求是否很大, uni的downloadFile方法很方便,故没有进一步封装(其实这个功能也好加),如果有必须要传网络路径的需要,请在评论区留言,只要有一个这样的需求,我就会加这个功能的
(2).关于本地路径,有可能为uni的路径,最好用plus.io.convertLocalFileSystemURL()的api,将路径转化为android原生路径,具体可查看 <使用说明>--<调用方法>中相关代码的说明

5.Demo下载
您可下载Demo安装到手机上,参看一下效果,本Demo包括了作者开发的大部分插件,您可以进入相应插件模块查看效果,Demo中实现的效果只是常用举例且功能有限,而且并不及时更新,所以用户还是应以详细文档中的说明为准,参数自由组合实现想要的功能。Demo下载链接如下:
https://pan.baidu.com/s/1YMLAx21N2p5sirJqwkLJoA 提取码: awh9

6.问题汇总:
(1).若有问题请及时在评论区留言,我的微信消息会及时收到您评论的信息,我也会及时回复,并汇总到这里

7.联系方式:
若有插件问题或需求,可以评论留言描述,或加本人QQ
我的QQ是:3516626205 (加好友麻烦备注:uni pdf浏览插件)
支持付费定制
(2)关于售后:
a.承诺bug类问题,终身免费维护
b.新功能新需求类,若两个小时能完成的小工作量功能,免费完善

本sdk的使用许可,详见HBuilder X使用许可协议

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问