更新记录

V1.0.0(2026-01-07) 下载此版本

支持 H5 Blob 方式下载二进制文件 Android 采用公共 Download 目录落盘 集成 FileProvider(content://) 分享,解决微信获取资源失败 iOS 支持 UIActivityViewController 分享 新增非法文件名过滤 优化分块写入算法 增强 targetSdk 35 兼容 修复 Base64 被空字节截断问题 增加 AAB/离线基座环境适配 新增数据用途与权限声明


平台兼容性

uni-app(4.87)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× - ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

LF Binary File Share 插件

插件能力

本插件专注于处理宿主应用下载得到的二进制文件流,并根据平台特性调起系统分享:

  • H5:使用浏览器 Blob 接口直接下载
  • Android(targetSdk ≥ 35):保存到公共 Download 目录,通过 FileProvider 生成 content:// Uri 后调起微信、钉钉等第三方应用分享
  • iOS:写入应用沙盒 _doc 后使用 UIActivityViewController 系统分享

内置:

  • 非法文件名清洗
  • 大文件分块写入
  • 纯字节落盘校验
  • 对外可读路径转换

适合类型:Excel / PDF / ZIP / 图片包等。


安装

npm install huge-binary-file-share

使用

import { downloadOrShareArrayBuffer } from './file-share'; //根据实际路径引用
// 用法示例
const handleDonload = async (versionIds) => {
    if (!versionIds) return;

    try {
        // request.get  属于自行封装请求方法
        const res = await request.get(url,params,{ responseType: 'arraybuffer' });
        //  buffer 文件流   filename 文件名  从请求头中获取
        const { buffer, filename } = res;
        // 实际调用方法
        await downloadOrShareArrayBuffer(buffer, filename, {
            mime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
            chooserTitle: '分享Excel'
        });
    } catch (e) {
        uni.showToast({ title: e?.message || '下载/分享失败', icon: 'none' });
    }
};

隐私、权限声明

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

Android READ_MEDIA_FILES WRITE_MEDIA_FILES READ_EXTERNAL_STORAGE(仅 targetSdk < 33 时可选) iOS 无强制权限(文件写入 _doc 属于App沙盒)

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

1)采集的数据 本插件采集/处理: 宿主App下载接口返回的 ArrayBuffer 文件名称 filename 系统类型 plus.os.name 2)发送的服务器地址 本插件自身不主动请求服务器,仅处理宿主App提供的接口数据。 示例宿主调用地址: https://<宿主业务域名>/version/specs/share 真实服务器地址由使用方在App中配置,本插件不内置固定域名。 3)数据用途 用途说明: 数据 用途 ArrayBuffer 还原原始文档 filename 创建文件 平台类型 选择分享方式 不会: 采集设备IMEI/OAID 不发送任何隐私信息 不包含行为追踪

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

许可协议

MIT协议

暂无用户评论。