更新记录

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

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


温馨提示:从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 示例 体验

隐私、权限声明

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

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

无,不涉及收集用户的任何数据,详情可浏览腾讯文件浏览官网:https://x5.tencent.com/tbs/index.html

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

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