更新记录

1.0.7(2021-05-10)

1.修复若干bug

2.优化用户体验

1.0.6(2021-03-31)

1.全新UI设计

2.增加目录设置功能

3.增加全屏切换功能

4.增加跳转功能

5.增加页码显示功能

6.增加结束浏览时,返回当前页码

7.解决放大缩小,有的pdf黑字会有黑影问题

查看更多

平台兼容性

Android

iOS

适用版本区间:4.4 - 11.0

×

原生插件通用使用流程:

购买插件,选择该插件绑定的项目。

在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。

根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。

打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。

开发完毕后正式云打包

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

K-PdfViewerModule 简介

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

支持目录设置及跳转指定页数

支持放大缩放

支持全屏切换浏览

支持pdf浏览结束后,返回当前阅读页码,方便用户存储,下次再打开时,传入此页码可直接停留在当前页码浏览

支持vip限制浏览功能

简单样式定制

沉浸式界面,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 => {}

);

});

}

传参说明:

参数

类型

默认值

说明

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/1IuccoaXl_E8rZGifgwYvNw 提取码: qaab

6.问题汇总:

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

7.联系方式:

若有插件问题或需求,可以评论留言描述,或加本人QQ

我的QQ是:3516626205 (加好友麻烦备注:uni pdf浏览插件)

支持付费定制

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

android pdf 插件,Pdf文件查看 android原生插件相关推荐

  1. 跨平台Android和IOS百度语音在线识别原生插件

    一.插件推荐 跨平台Office文档.图片在线预览,视频播放原生插件 Android和IOS图片在线预览,视频播放原生插件 跨平台Android和IOS百度OCR文字识别.证卡识别.票据识别原生插件 ...

  2. android极光聊天界面,极光聊天室原生插件

    更新记录 1.0.5(2020-02-26) 根据客户反馈, 修复:用户没有成功退出聊天室时,无法再进入的bug. 增加接收消息的时间戳字段. 1.0.4(2020-02-21) 应客户要求增加回调信 ...

  3. android数据库插件,AndroidStudio中查看SQLite数据库插件

    SQLScout,在 Android studio 内连接并操作 Android 设备上 sqlite 数据库. 特性 数据库结构浏览器 where you can connect to SQLite ...

  4. Android如何使用so文件和Android studio中导入so

    Android中使用so文件: 做一个PDF阅读的功能,找到一个开源的库,mupdf.下载的是网上编译好的so库,导入到自己项目中的时候一直报错Java.lang.UnsatisfiedLinkErr ...

  5. android调用 qt so文件路径,Android Java调用Qt写的so库

    有时候,我们反编译apk得到一个so库,如果直接使用这个so库的话,必须使用原来so库同样的package名字,才能用.这样人家反编译你的apk,就知道你侵犯了人家的版权.为了达到混淆的目的,我们可以 ...

  6. 【Android 逆向】Android 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )

    文章目录 一.Android 系统 root 环境准备 二.查看 Android 根目录信息 一.Android 系统 root 环境准备 需要一部 root 过的手机 , 或者直接使用带有 root ...

  7. android 发送显示广播,如何查看Android系统当前发送了什么广播

    作者:Yogi 前言:在开发的时候,我们有时想知道我们定义的广播是否成功发送,或者想知道做了某个操作,系统是否会发送广播,并且发送了什么广播.如果说能够直接查看到,那是非常好的,这样就不需要googl ...

  8. android 电视安装apk文件损坏,android - 无法在Android电视盒上安装APK - 堆栈内存溢出...

    我正在为Android TV编写应用程序. 它可以在模拟器上正常运行,并在Android电视盒上以调试模式运行. 但是,当我使用Android Studio生成apk并尝试将该apk安装在同一盒子上时 ...

  9. 查询android手机端包名,查看android手机原生app包名的方法

    如果想要知道手机原生携带的app的基本信息,首先是无法获取到这个apk软件包,也就无法用appium中的aapt的方法来获取对应的信息.此时可以通过抓取日志的方法获取基本信息. 举例:想要获取到手机功 ...

最新文章

  1. 输出stage.displayState等于null原因
  2. CSS选择器笔记,element element和element element 的区别
  3. 旋转字符串算法由浅入深
  4. Android自定义View——可以设置最大宽高的FrameLayout
  5. JavaScript的格式
  6. [转]ie6下CSS存在的BUG
  7. 安装AutoCAD 2015提示net 4.5错误的解决方法
  8. C-Cheating and Stealing_2021牛客暑期多校训练营5
  9. Spark HA高可用部署、基于文件系统单点恢复、基于zookeeper的Standby Master、如何恢复到上一次活着master挂掉之前的状态 03
  10. 【AI简报20210702期】骁龙888 plus发布、RISC-V处理器大飞跃
  11. 关于我的专业(niit软件工程方向)
  12. 知乎创意总监、Dine 设计团队创始人 @disinfeqt :设计、音乐
  13. C语言动态申请内存空间之malloc(),calloc(),realloc()函数
  14. Parameter 'arg0' not found. Available parameters are [xxx, xxx, param1, param2]
  15. 单片机 利用C语言产生正弦波DA数据
  16. Java递归实现围棋提子思想
  17. 吊钩可视化监控系统智慧工地管理平台系统
  18. K8s 集群中存储对象灾备的落地实践
  19. 迪威视讯获中国大屏显示领域顶级大奖
  20. 2022-4-2 Leetcode 563.二叉树的坡度

热门文章

  1. 3DMark Vantage
  2. 29.【C语言】进制转换:10转16、10转2、2转10、16转10(Demo)
  3. JavaScript----<script></script>
  4. react-infinite-scroller组件滚动分页加载
  5. Yii2实现文件zip打包下载功能
  6. Debian 系统 安装nodejs
  7. ubuntu下安装极品五笔
  8. angularjs还有前景吗_卡奇乐:在大城市投资儿童乐园还有市场前景吗
  9. ffmpeg视频转码记录
  10. 30岁的我们,没车没房没存款。