更新记录

1.2.0(2021-06-05)

1.增加组件嵌入方式预览,自定义水印 2.增加wps预览文档 3.增加wps 编辑文档 4.增加ios 版本

1.0.1(2021-04-22)

1.附件路径改为绝对路径 2.新增初始化x5内核

查看更多

平台兼容性

Android iOS
适用版本区间:5.0 - 11.0 适用版本区间:10 - 14

原生插件通用使用流程:

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


原生插件通用使用流程:

购买插件,选择该插件绑定的项目。 在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原生插件配置”->”云端插件“列表中删除该插件重新选择

说明,本插件只能打开本地文件,支持添加水印,文件预览放大缩小,调用wps打开编辑word、excel文档。

引入模块

var docModule = uni.requireNativePlugin("yszyun-OpenModule-DocPreviewModule")

检测WPS客户端是否已经安装
checkInstall(){
                var result = docModule.checkWps();
                if(result == true){
                    plus.nativeUI.toast('WPS已安装');
                }else{
                    plus.nativeUI.toast('WPS未安装');
                }
            }
打开WPS下载页面
gotoAppStore(){
                docModule.goDownloadWPS();
            }

文件路径需转换为绝对路径

plus.io.convertLocalFileSystemURL("tempFilePath")

水印名字,如不需要水印,设置为空即可

let waterMaskData = {
                                               path: _this.filePaths,
                                               mask: '优势智云',
                                               sub:'张三'
                                            };
                                            uni.setStorage({
                                              key: 'waterMaskData',
                                              data: waterMaskData
                                            }).then(res => {
                                                uni.navigateTo({
                                                    url:'/pages/sample/ext-docpreview-component'
                                                })
                                            });

本地打开或编辑(调用WPS)

//path:文档绝对路径 //canwrite: 是否可以编辑,true:编辑 false:只读

            openLocalDocFileWithWps(path, canWrite) {
                docModule.openLocalWithWps(path, canWrite, (ret) => {
                        plus.nativeUI.toast(ret.result);  //完成预览编辑后,WPS的回调
                });

            },

在线打开或编辑(调用WPS)

//path:文档绝对路径 //canwrite: 是否可以编辑,true:编辑 false:只读

openRemoteDocFileWithWps(url, canWrite) {

                docModule.openRemoteWithWps(url, canWrite, (ret) => {
                        plus.nativeUI.toast(ret.result); //完成预览编辑后,WPS的回调
                });

            }

调用方法

download(url, title) {
                var _this = this;
                uni.showLoading({
                    title: "文件下载中"
                });

                _this.docUrl = 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-81f1d72a-96c3-47b4-ab95-0a2aaf322724/' + url;
                const downloadTask = uni.downloadFile({
                    url: _this.docUrl,
                    success: (res) => {
                        if (res.statusCode === 200) {
                            console.log("下载成功 res res.tempFilePath:" + JSON.stringify(res));
                            _this.filepath = res.tempFilePath
                            _this.filePaths = plus.io.convertLocalFileSystemURL(res.tempFilePath);
                            console.log("下载成功 res res.filePaths:" + _this.filePaths);
                            uni.hideLoading();
                            uni.showActionSheet({
                                itemList: [
                                    '预览本地文档(原生页面,自定义水印,状态栏)', 
                                    '预览本地文档(组件嵌入,自定义水印)', 
                                    '本地预览文档(WPS方式, 需安装WPS客户端)',
                                    '本地编辑文档(WPS方式, 需安装WPS客户端)',
                                    '在线预览文档(WPS方式, 需安装WPS客户端)',
                                    '在线编辑文档(WPS方式, 需安装WPS客户端)',
                                ],
                                success: function (res) {
                                    console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
                                    switch(res.tapIndex){
                                        case 0:
                                            _this.openDocFile(_this.filePaths, title);
                                            break;
                                        case 1:
                                            let waterMaskData = {
                                               path: _this.filePaths,
                                               mask: '优势智云',
                                               sub:'张三'
                                            };
                                            uni.setStorage({
                                              key: 'waterMaskData',
                                              data: waterMaskData
                                            }).then(res => {
                                                uni.navigateTo({
                                                    url:'/pages/sample/ext-docpreview-component'
                                                })
                                            });
                                            break;
                                        case 2:
                                            _this.openLocalDocFileWithWps(_this.filePaths, false);
                                            break;
                                        case 3:
                                            _this.openLocalDocFileWithWps(_this.filePaths, true);
                                            break;
                                        case 4:
                                            _this.openRemoteDocFileWithWps(_this.docUrl, false);
                                            break;  
                                        case 5:
                                            _this.openRemoteDocFileWithWps(_this.docUrl, true);
                                            break;
                                    }
                                },
                                fail: function (res) {
                                    console.log(res.errMsg);
                                }
                            });
                        }
                    }
                });

                downloadTask.Update((res) => {
                    console.log('下载进度' + res.progress);
                    console.log('已经下载的数据长度' + res.totalBytesWritten);
                    console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);

                });
            },

预览效果

完整演示动画gif

安卓版本demo 扫码下载

扫码添加技术微信支持,备注说明对应的插件名称

咨询电话: 400-008-1668 邮箱:marketing@yszyun.com

隐私、权限声明

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

存储,设备信息

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

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

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