更新记录

1.7.0(2022-07-18)

  • 增加 Android 端 离线浏览文件功能,可以在无网络环境下使用。

1.6.0(2022-05-18)

  • 新增 isShowBackIcon 参数,用来设置是否显示返回箭头图标。
查看更多

平台兼容性

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

原生插件通用使用流程:

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


Android 和 IOS 办公文件浏览查看器,支持无网络环境下使用

支持打开文件格式:[ doc,docx,ppt,pptx,xls,xlsx,txt,pdf ], 只支持打开本地的文件,在线的文件需要下载后才能打开。

实例化插件:

const open=uni.requireNativePlugin("Html5App-openFile");

安卓端内核下载失败建议

  • 第一次使用时,可能出现的问题.

  • 安卓端插件,使用的是腾讯浏览文件 X5 内核,应用在第一次安装打开时,需要在联网的状态下,内核会自动下载安装,内核大概30MB左右,需要一点时间来下载,如果出现内核安装不成功,可能是内核下载失败导致,或者可以使用手动安装的方式来安装内核。

  • 第一次启动应用时,可以直接使用 openFile 打开文件,可能要等待内核下载完成,才能正常打开文件预览.

  • 腾讯X5 内核 下载网址,不能保证链接一直可以,或者多人使用导致服务器缓慢或维护的问题,导致内核下载失败,你也可以下载内核下来放在你的服务器上作下载以备用。

    https://tbs.imtt.qq.com/release/x5/tbs_core_045738_20210925205342_nolog_fs_obfs_armeabi_release.tbs
  • 也可以下载内核下来,放进应用内一起打包,需要使用时安装,但是内核有30MB 大小,不太建议这样做,会增大apk 安装体积,不友好。

打开文件的方法, 使用无须用 isLoadTbs 来判断,直接使用 openFile 方法就可以,里面有检查并安装内核的方法, 除非失败了,可以使用手动下载内核。

      open.openFile({filename:filepath,isShowBackIcon:false},ret=>{

            if(ret.code==-1) //文件浏览组件在加载中,请稍等
            {

            }

            if(ret.code==-2) //文件浏览组件加载超时
            {  

            }

            if(ret.code==0) //打开文件成功
            {

            }

        });
参数名 说明
filename 文件本地绝对路径
isShowBackIcon 是否显示返回图标, 默认 ios 和 android 都可以右滑关掉页面

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

手动安装本地 tbs 内核, 这个方法,一般在自动下载内核安装失败时,多次尝试都无法成功时,选择的备用方法。

  • 方法仅支持安卓,要作系统的判断,避免在ios 系统中使用错误.
  • tbsFilePath : 本地tbs 内核绝对平台路径
  • isdelete : 安装内核成功时,是否删除掉tbs 原文件,true 或false 。
let path=plus.io.convertLocalFileSystemURL("static/tbs.tbs");

        //安装本地tbs内核
        open.installLocalTbs({
            tbsFilePath:path,
            isdelete:true
        },function(e){

        }); 

检查是否已安装体tbs 文件浏览内核

  • 方法仅支持安卓,要作系统的判断,避免在ios 系统中使用错误.
    • true : 已安装了,false : 未安装 ,
 let is=open.isLoadTbs();

安装本地tbs 浏览文件插件包, tbsplugins.zip 插件包在示例项目的static 文件夹下,有5.7MB 左右,如果非必要,不是纯离线环境,可以放在服务器上,需要时下载到本地,再安装,直接放在应用里,安装包apk 会增大。

  • 如果在有网络的情况下,打开文件显示插件加载失败,可以使用本地包来安装。
  • 建议在从未打开文件浏览之前就安装,如果之前打开过文件浏览显示插件加载失败,再安装,这时需要重启一下应用才生效。
  • 安卓端有效。
        let path=plus.io.convertLocalFileSystemURL("static/tbsplugins.zip");
         open.installPlug({filePath:path},ret=>{

             uni.showToast({
                title:ret.msg,
                icon:"none"
             });

         });

重启应用

  • 如果遇到安装本地插件包,打开还是显示加载插件失败,可以执行一次重启应用。
  • 安卓端有效。
    //重启app
    open.restartApp();

如需要把本地文件分享给其他好友,例如:QQ,微信 ,使用以下这个方法,这个方法只支持安卓

open.shareToFile({filename:filepath,title:"分享文件",fileType:"*/*"});
  • filename => 文件路径
  • title => 分享框上的文字提示
  • fileType => 文件类型 , 默认 / ,代表所有文件,例如:image/*.

图片

扫一扫下载安卓DEMO 示例 体验

隐私、权限声明

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

文件读取

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

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

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

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