更新记录
1.7.6(2023-10-20)
- 优化安卓端pdf 横竖屏显示。
1.7.5(2023-06-29)
- 更新 Android 端 pdf 浏览为了兼容性重写了浏览方式,不再依赖tbs 内核浏览,可以独立使用,只需要浏览pdf 文档的,不需要再安装tbs 内核,如果需要浏览ppt,xls, docx,txt 还是需要先安装内核 tbs 。
1.7.4(2023-05-26)
- 重要!重要! 重要! 安卓端不再支持自动下载内核安装,目前仅支持手动安装,已将安装包的缩减到10MB 左右,使用之前模式的,请更改为目前的手动安装内核,详细参考示例demo 项目使用。
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择
温馨提示:从1.7.4 版本起 安卓端的文档浏览为了更好的体验,更改为了手动安装模式,之前的自动下载内核已弃用,看到的用户,及时更新,最新的内核包10MB 左右,如果还是用之前的内核包的,请更新为最新的,可以在示例项目中,得到该文件。
安卓端只需要两步,就可以正常使用, 第一步安装内核,第二步,打开文件,即装即用。
pdf 浏览目前是独立方式,不再需要安装tbs 内核,打包即可使用,其他文件浏览,还是需要安装tbs。
Android 和 IOS 办公文件浏览查看器,支持无网络环境下使用,支持 64 位手机使用
支持打开文件格式:[ doc,docx,ppt,pptx,xls,xlsx,txt,pdf ], 只支持打开本地的文件,在线的文件需要下载后才能打开。
实例化插件:
const open=uni.requireNativePlugin("Html5App-openFile");
安卓端tbs内核, 目前采用,手动安装方式,不用使用内部自动下载,之前的方式已弃用。
方法介绍
1. installLocalTbs 安装文件浏览内核文件,安卓端需要
- 在示例项目的 static 文件夹下 arm64-v8a.tbs ,有10MB 大小左右, 可以放在项目中一起打包使用,也可以放在你的服务器上,需要使用时下载下来再使用,可以减少安装包大小。
let filepath=plus.io.convertLocalFileSystemURL("static/arm64-v8a.tbs");
open.installLocalTbs({
tbsFilePath:filepath,
isdelete:false //安装好是否要删除该文件
},function(e){
});
参数名 | 说明 |
---|---|
tbsFilePath | tbs 内核文件本地绝对路径 |
isdelete | 安装后,是否把该文件删除掉 |
- 回调说明:
code | 说明 |
---|---|
-1 | tbs 本地文件路径不能为空! |
-2 | tbs 文件不存在,检查路径是否正确! |
-3 | tbs 内核文件类型不正确,只能是后缀.tbs文件! |
-4 | tbs 内核已安装,无须重复安装,目前可以正常使用了 |
-5 | 正在操作进行中,请勿重复提交 |
-6 | tbs 内核安装失败! |
1 | tbs 内核安装中... |
0 | tbs 内核安装成功,可以正常使用了! |
2. openFile 打开文件浏览
open.openFile({filename:filepath,isShowBackIcon:true},ret=>{
});
参数名 | 说明 |
---|---|
filename | 文件本地绝对路径 |
isShowBackIcon | 是否显示返回图标, 默认 ios 和 android 都可以右滑关掉页面 |
pdfBgColor | 打开pdf 文档时设置的背景颜色 例如:"#20232a" ,仅支持安卓 |
- 回调说明:
code | 说明 |
---|---|
-1 | 文件路径不能为空 |
-2 | 文件浏览tbs内核,尚未安装,请先安装再执行打开操作 |
-3 | 文件路径无效,请检查文件是否存在! |
-4 | 不支持该类型文件浏览 |
0 | 文件打开成功 |
filename 参数:是文件的平台绝对路径,格式例如:
/storage/sdcard0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc/1.pdf
-
如果地址是以下这种相对地址的
_doc/download/06e43dddb107.pdf
-
就要使用 plus.io.convertLocalFileSystemURL(); 方法来转换下地址变成绝对路径, 例如:
var filePath=plus.io.convertLocalFileSystemURL("_doc/download/06e43dddb107.pdf");
- 变成绝对路径才可以正常打开浏览文件
/storage/sdcard0/Android/data/io.dcloud.HBuilder/doc/download/06e43dddb107.pdf
3.isLoadTbs 检查是否已安装体tbs 文件浏览内核
- 方法仅支持安卓,要作系统的判断,避免在ios 系统中使用错误.
-
- true : 已安装了,false : 未安装 ,
let is=open.isLoadTbs();
4.重启应用
- 如果遇到打开还是显示加载插件失败,可以执行一次重启应用。
- 安卓端有效。
//重启app open.restartApp();
如需要把本地文件分享给其他好友,例如:QQ,微信 ,使用以下这个方法,这个方法只支持安卓
open.shareToFile({filename:filepath,title:"分享文件",fileType:"*/*"});
- filename => 文件路径
- title => 分享框上的文字提示
- fileType => 文件类型 , 默认 / ,代表所有文件,例如:image/*.
第二种方式,使用 nvue 组件,仅支持安卓端。
<template>
<view :style="{height: height}">
<openfile-view
ref="openfile"
:filePath="{filePath}"
@onCallback="onCallback"
:style="{height: height}"
>
</openfile-view>
</view>
</template>
<script>
export default {
data() {
return {
height:0,
filePath:""
}
},
onReady() {
//获得当前显示视频的view 对象
this.context =this.$refs.openfile;
this.height = uni.getSystemInfoSync().windowHeight + 'px';
this.filePath=plus.io.convertLocalFileSystemURL("../../static/2.docx");
},
methods: {
onCallback(e)
{
console.log("回调通知:" + JSON.stringify(e.detail));
}
}
}
</script>
扫一扫下载安卓DEMO 示例 体验