如何通过插件调用预览功能
开发者可以通过插件调用平台的预览功能,进行预览文件。原理是后端发送previewAttachment指令到前端,前端接收到指令即可实现预览。
# 移动端
**previewAttachment指令参数详情**
| **参数** | **类型** | **是否必传** | **参数值** | **说明** |
| -------------------- | -------- | --------------- | ------------------------------------------------- | ------------------------------------------------------------ |
| downloadUrl | string | 是 | 文件下载url | 此url需支持免登下载,如需在云之家app中使用,此参数必传。
获取方式:后端接口kd.bos.session.EncreptSessionUtils#encryptSession | | fileExt | string | 是 | “pdf”、“txt”等 | 文件后缀 | | fileId | string | 是 | “xxxx“ | 文件id | | previewUrl | string | 是 | 文件预览url | 获取方式:[https://vip.kingdee.com/knowledge/specialDetail/294832938980257024?category=449216060676183552&id=449213564277170432&productLineId=29](https://vip.kingdee.com/knowledge/specialDetail/294832938980257024?category=449216060676183552&id=449213564277170432&productLineId=29) | | previewType | string | 是 | 默认为“0”,数值有:“0”,“1”,“21”,“22”,“3”,“5" | 0默认预览方式,1云之家、21云有云wps在线预览、22私有云wps在线预览、3onlyoffice、5自定义。后端接口
kd.bos.form.attachment.util.ParamUtil#getPreviewType | | urlList | array | 类型为图片必传 | [图片previewUrl,图片previewUrl] | 如果为图片类型,此参数必传,预览时会将数组中的值都请求一次,用户可以右滑查看下一张图片。 | | fileName | string | 云之家app中必传 | “test.pdf" | 文件名,如需在云之家app中使用,此参数必传。 | | md5 | String | 云之家app中必传 | - | 根据文件流生成唯一的md5值,如果需在云之家app中使用,该参数为必传。获取方式:后端接口org.apache.commons.codec.digest.DigestUtils#md5Hex(java.io.InputStream) | | supportOnlinePreview | boolean | 云之家app中必传 | 默认为false | 如需使用云之家app中使用,此参数必传,且必须为true。 | | appPreviewClose | boolean | 可选 | 默认为false | 是否关闭app的预览服务,如果关闭则使用平台的预览服务 | **示例代码** **注:此处仅演示如何通过调用previewAttachment接口来给前端发送previewAttachment指令,具体需要传的指令参数需要根据业务逻辑自定义**。previewAttachment指令所需参数详见上文**previewAttachment指令参数详情**。 ```java public class previewAttachmentTest extends AbstractFormPlugin { @Override public void registerListener(EventObject e) { this.addItemClickListeners("tbmain"); } @Override public void itemClick(ItemClickEvent evt) { if ("button_previewatt_mobile".equals(evt.getItemKey())) { Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "http://localhost:8080/ierp/attachment/download.do?path=/tenant_devcore_dev/1402323749146986496/202311/6d79de33dd854bda8621b4f11541668c/单据引入.xlsx"); map.put("fileExt", "xlsx"); map.put("fileId", "rc-upload-1700821901537-24"); map.put("fileName", "单据引入.xlsx"); map.put("fileSize", "6979"); map.put("fileTime", "1686735845156"); map.put("filesource", "1"); map.put("previewType", "0"); map.put("previewUrl", "http://localhost:8080/ierp/attachment/preview.do?path=/tenant_devcore_dev/1402323749146986496/202311/6d79de33dd854bda8621b4f11541668c/单据引入.xlsx"); this.getView().previewAttachment(map); } } } ``` ![image-20231128134333321.webp](/download/0100c895e0317cd6441083150fb72b46d20f.webp) # PC端 **previewAttachment指令参数详情** | 参数 | 类型 | 是否必传 | 参数值 | 说明 | | ---------- | ------ | -------- | -------------- | ------------------------------------------------------------ | | name | String | 是 | “test.pdf" | 文件名 | | previewurl | String | 是 | 文件预览url | 获取方式:https://vip.kingdee.com/knowledge/specialDetail/294832938980257024?category=449216060676183552&id=449213564277170432&productLineId=29 | | size | long | 是 | 23 | 文件大小 | | status | String | 是 | "success" | 状态码 | | type | String | 是 | “pdf”、“txt”等 | 文件类型 | | uid | String | 是 | "xxxx" | 文件id | | url | String | 是 | 文件下载url | 获取方式:https://vip.kingdee.com/knowledge/specialDetail/294832938980257024?category=449216060676183552&id=449213564277170432&productLineId=29 | **示例代码** **注:此处仅演示如何通过调用previewAttachment接口来给前端发送previewAttachment指令,具体需要传的指令参数需要根据业务逻辑自定义**。previewAttachment指令所需参数详见上文**previewAttachment指令参数详情**。 ```java public class MyTest extends AbstractFormPlugin { @Override public void registerListener(EventObject e) { this.addItemClickListeners("tbmain"); } @Override public void itemClick(ItemClickEvent evt) { if ("button_previewatt_pc".equals(evt.getItemKey())) { List<Map<String, Object>> attachments = AttachmentServiceHelper.getAttachments("myattachment", "1825491920782225408", "attachmentpanel", true); this.getView().previewAttachment(attachments.get(0)); } } } ``` ![image-20231128134937675.webp](/download/01009a5f6509b01d4603a343b4b1c19955a1.webp) PC端previewAttachment指令必传参数: ![image-20231204093221822.webp](/download/01001593e140034e4cd1959cd2d5ca0ba866.webp)
获取方式:后端接口kd.bos.session.EncreptSessionUtils#encryptSession | | fileExt | string | 是 | “pdf”、“txt”等 | 文件后缀 | | fileId | string | 是 | “xxxx“ | 文件id | | previewUrl | string | 是 | 文件预览url | 获取方式:[https://vip.kingdee.com/knowledge/specialDetail/294832938980257024?category=449216060676183552&id=449213564277170432&productLineId=29](https://vip.kingdee.com/knowledge/specialDetail/294832938980257024?category=449216060676183552&id=449213564277170432&productLineId=29) | | previewType | string | 是 | 默认为“0”,数值有:“0”,“1”,“21”,“22”,“3”,“5" | 0默认预览方式,1云之家、21云有云wps在线预览、22私有云wps在线预览、3onlyoffice、5自定义。后端接口
kd.bos.form.attachment.util.ParamUtil#getPreviewType | | urlList | array | 类型为图片必传 | [图片previewUrl,图片previewUrl] | 如果为图片类型,此参数必传,预览时会将数组中的值都请求一次,用户可以右滑查看下一张图片。 | | fileName | string | 云之家app中必传 | “test.pdf" | 文件名,如需在云之家app中使用,此参数必传。 | | md5 | String | 云之家app中必传 | - | 根据文件流生成唯一的md5值,如果需在云之家app中使用,该参数为必传。获取方式:后端接口org.apache.commons.codec.digest.DigestUtils#md5Hex(java.io.InputStream) | | supportOnlinePreview | boolean | 云之家app中必传 | 默认为false | 如需使用云之家app中使用,此参数必传,且必须为true。 | | appPreviewClose | boolean | 可选 | 默认为false | 是否关闭app的预览服务,如果关闭则使用平台的预览服务 | **示例代码** **注:此处仅演示如何通过调用previewAttachment接口来给前端发送previewAttachment指令,具体需要传的指令参数需要根据业务逻辑自定义**。previewAttachment指令所需参数详见上文**previewAttachment指令参数详情**。 ```java public class previewAttachmentTest extends AbstractFormPlugin { @Override public void registerListener(EventObject e) { this.addItemClickListeners("tbmain"); } @Override public void itemClick(ItemClickEvent evt) { if ("button_previewatt_mobile".equals(evt.getItemKey())) { Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "http://localhost:8080/ierp/attachment/download.do?path=/tenant_devcore_dev/1402323749146986496/202311/6d79de33dd854bda8621b4f11541668c/单据引入.xlsx"); map.put("fileExt", "xlsx"); map.put("fileId", "rc-upload-1700821901537-24"); map.put("fileName", "单据引入.xlsx"); map.put("fileSize", "6979"); map.put("fileTime", "1686735845156"); map.put("filesource", "1"); map.put("previewType", "0"); map.put("previewUrl", "http://localhost:8080/ierp/attachment/preview.do?path=/tenant_devcore_dev/1402323749146986496/202311/6d79de33dd854bda8621b4f11541668c/单据引入.xlsx"); this.getView().previewAttachment(map); } } } ``` ![image-20231128134333321.webp](/download/0100c895e0317cd6441083150fb72b46d20f.webp) # PC端 **previewAttachment指令参数详情** | 参数 | 类型 | 是否必传 | 参数值 | 说明 | | ---------- | ------ | -------- | -------------- | ------------------------------------------------------------ | | name | String | 是 | “test.pdf" | 文件名 | | previewurl | String | 是 | 文件预览url | 获取方式:https://vip.kingdee.com/knowledge/specialDetail/294832938980257024?category=449216060676183552&id=449213564277170432&productLineId=29 | | size | long | 是 | 23 | 文件大小 | | status | String | 是 | "success" | 状态码 | | type | String | 是 | “pdf”、“txt”等 | 文件类型 | | uid | String | 是 | "xxxx" | 文件id | | url | String | 是 | 文件下载url | 获取方式:https://vip.kingdee.com/knowledge/specialDetail/294832938980257024?category=449216060676183552&id=449213564277170432&productLineId=29 | **示例代码** **注:此处仅演示如何通过调用previewAttachment接口来给前端发送previewAttachment指令,具体需要传的指令参数需要根据业务逻辑自定义**。previewAttachment指令所需参数详见上文**previewAttachment指令参数详情**。 ```java public class MyTest extends AbstractFormPlugin { @Override public void registerListener(EventObject e) { this.addItemClickListeners("tbmain"); } @Override public void itemClick(ItemClickEvent evt) { if ("button_previewatt_pc".equals(evt.getItemKey())) { List<Map<String, Object>> attachments = AttachmentServiceHelper.getAttachments("myattachment", "1825491920782225408", "attachmentpanel", true); this.getView().previewAttachment(attachments.get(0)); } } } ``` ![image-20231128134937675.webp](/download/01009a5f6509b01d4603a343b4b1c19955a1.webp) PC端previewAttachment指令必传参数: ![image-20231204093221822.webp](/download/01001593e140034e4cd1959cd2d5ca0ba866.webp)
如何通过插件调用预览功能
开发者可以通过插件调用平台的预览功能,进行预览文件。原理是后端发送previewAttachment指令到前端,前端接收到指令即可实现预览。# 移动...
点击下载文档
本文2024-09-23 00:35:37发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140463.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章