---
title: "附件区批量下载前置接口(基线250701以上)"
publicId: "69af8aff-d66b-4db5-beab-00d92d14832f"
source: "https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/doc/69af8aff-d66b-4db5-beab-00d92d14832f"
---
附件区批量下载时，提供前置接口，允许自定义处理下载的逻辑。

下面提供具体的例子，说明如何调用钩子接口

```javascript
import { corsImport, weappSDK, regOvProps } from '@weapp/utils';

const batchDownloadInteceptor = (params: any) => {
  return new Promise(resove => {
    /**
     * fileIds：选中的待下载的附件
     * closeDialog：关闭批量下载的弹窗的事件
     */
    const { fileIds, closeDialog } = params;

    /**
     * 自行实现下载文件的逻辑,
     * 例子仅供参考
     */
    if (fileIds && fileIds.length > 0) {
      fileIds.forEach(fileId => {
        weappSDK.webOpen(`/api/app/file/remotedownload/${fileId}/document/true`);
      });
    }

    //关闭弹窗
    closeDialog?.();

    /**
     * 一定要调用，
     * true：继续执行原有批量下载逻辑，
     * false：阻断，不继续执行原有批量下载逻辑
     * 如果自己实现了下载逻辑，此处建议返回false
     */
    resove(false);
  });
};

//是否已注册事件
let isRegister = false;

//保证有附件区时，才注册监听事件
regOvProps('weappOdoc', 'OdocAttachArea', props => {
  corsImport('@weapp/odoc').then(app => {
    const { OdocHookUtil } = app;

    //注册插件的检测拦截事件
    if (!isRegister) {
      OdocHookUtil.regOdocSyncHook('FlowForm.attachAreaBatchDownloadInteceptor', batchDownloadInteceptor);
      isRegister = true;
    }
  });

  //不做任何调整，直接返回
  return props;
})

```
