2023年7月13日发(作者:)
快速实现PDF,DOC,XLS,PPT等⽂件预览说起app内部浏览pdf以及办公⽂档,对于android来说就不像ios那么⽅便,直接在webview⾥放⼊相应链接即可实现app内部预览;但是⾯对要预览pdf,doc等⽂件的需求,安卓⼩伙伴⼜不可能不去实现,只因产品⼀句ios就能android为什么不能;然后,在不断的撕逼与妥协之下相当⼀部分的实现⽅式就是将⽂件下载下来调⽤第三⽅APP打开。这种跳出⾃家应⽤的体验的确不怎么好,但是⾯对有限的开发时间这也不失为⼀种解决⽅式。 好了,故事背景介绍完毕,下⾯聊⼀下⼏种解决⽅案;⼀、服务器端解决 1、把pdf相关⽂档⽣成图⽚,给客户端展⽰; 2、应⽤这个第三⽅⼯具,由服务器端提供⼀个html页⾯,实现调⽤相关⽅法传⼊⽂件链接,即可通过客户端webview实现在线预览,当然客户端也可以把相关内容放到本地assets⾥⾃⼰实现。但是实⽤有个缺点就是在⼿机端预览时,如果⼿机配置⾼的话还是⽐较流畅的,否则的话绘制⽐较慢,还有个缺点就是如果把放到应⽤本地实现,安装包会多好⼏兆,具体多少我也不记得了,毕竟是去年⽤这个东西试了下,感觉不太理想就删了。3、其他。⼆、客户端解决 1、上⾯说的,也可由客户端单独完成,如果觉得合适可以试试⽤下。 2、使⽤腾讯提供的X5内核,坑还是⽐较多的,如果想试着⾃⼰踩(反正我不想,哈哈…),可以⾃⼰实现看看,如果不想⾃⼰踩下⾯我会推荐⼀个封装好的⼯具包的使⽤⽅法,简单易⽤。 虽说该⼯具直接拿来就能⽤,我觉得,简单介绍⼀下X5内核实现的逻辑还是有必要的,尽管不懂也不影响接⼊。下⾯简单说⼀下,app要加载pdf⽂件就需要先加载pdf插件,然⽽加载pdf插件之前需要有X5内核,所以说有了X5内核就可以顺利的预览pdf⽂件了。如果⼿机上装有qq,微信,或者qq浏览器,本地基本都会有X5内核,只要你在⾃⼰的应⽤内调⽤内核初始化代码,就可共享使⽤本地已有的X5内核。如果本地没有,那就只能⾃⼰下载了,⼤概20M多点,官⽅说法是90秒左右可以下载完,我试了下快的话30秒左右也能下载完,具体还是看⽹速。3、其他。如下图,我拿两个⼿机试了下,从图中可以看出,第⼀次使⽤,如果没有X5内核要⼏⼗秒才能加载完成,之后再使⽤,⼀两秒也就加载完成了。vivi内核加载华为荣耀内核加载废话不再多说,刚才提到的第三⽅⼯具,就是封装了X5内核的DocOpen。使⽤⽅式如下,跟别的jar引⼊⽅式⼀样,在相应的model的.gradle引⼊implementation 'g.x5:app:+'如图:jar导⼊由于X5内核只有32位没有64位,所以要⽀持64为⼿机,同时要在.gradle加⼊如下配置ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" }如图:ndk配置⾄此,jar导⼊以及相关配置完成,下⾯看代码实现,主要功能该jar包已经实现,包括⽂件下载,进度显⽰以及下载完成后渲染pdf⽂件。我们只需要做下⾯两件事:第⼀,初始化X5内核,直接在⾸页Activity调⽤初始化代码,如下5(this);第⼆,把jar包⾥的DocOpenFragment放⼊我们⾃⼰的Activity或者Fragment,实现⾃⼰的顶栏样式即可。代码如下布局⽂件red_act_doc_:
⾄此,代码实现完成,是不是很快,下⾯看⼀下效果吧。如图: 预览效果
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689216238a222306.html
评论列表(0条)