更新记录

1.0.0(2026-04-14)

  1. 新增 Android / iOS 外部文件导入插件
  2. 支持从系统共享、用其他应用打开导入文件
  3. 支持复制到应用缓存目录并返回稳定路径
  4. 返回文件名、大小、后缀、MIME、来源信息
  5. 新增 Demo 页面与使用文档

平台兼容性

uni-app(4.75)

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

uni-app x(4.75)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × - ×

austin-import-files

austin-import-files 是一个 App 外部文件导入 UTS 插件,兼容 Android / iOS 实现。

它解决的不是“我自己在 App 里选文件”,而是“别的 App 已经有文件了,用户要把文件直接导进我的 App”。

典型场景:

  • 微信里收到 PDF / Word / Excel,选择“用其他应用打开”,导入你的 App
  • iPhone 文件 App 或 Android 文件管理器里已有文件,直接共享到你的 App
  • Safari / 浏览器下载的合同、课件、压缩包,直接用你的 App 打开
  • 邮件附件、钉钉、飞书、企业微信文档,直接导入你的资料库

点击试用插件

当前目录下的 index.vue 是完整模板页,点击试用后包含:

  • 当前平台能力展示
  • 当前待处理导入数量
  • 导入到应用缓存目录开关
  • 调用 consumePendingImportFiles
  • 导入后用 uni.openDocument 预览

功能

  • 支持 Android / iOS 通过系统共享或“用其他应用打开”导入文件
  • Android 支持单文件和多文件导入
  • iOS 当前首版按单文件导入为主
  • 支持复制到应用缓存目录
  • 返回统一文件信息

优势

  • 不只返回原始 uri,会尽量转成业务侧更容易继续处理的稳定路径
  • Android 导入时会优先复制到应用缓存,避免第三方 content:// 授权过期后无法继续读取
  • 返回结构统一,直接给出 pathnativePathnamesizeextmimeTypesourceApp
  • 更适合做上传、归档、解析、附件接入;插件核心是“把文件稳定导入 App”

接入说明

这个插件依赖系统注册能力,所以你安装后需要打自定义基座,让:

  • Android 的 AndroidManifest.xml
  • iOS 的 Info.plist

生效后,系统共享列表或“用其他应用打开”里才能出现你的 App。

API

getImportFilesCapabilities()

返回当前平台能力对象。

参数 说明 类型 默认值 可选值
supported 当前平台是否支持外部文件导入 Boolean - true / false
platform 当前平台标识 String - android / ios / other
supportsMultiple 当前平台是否支持多文件导入 Boolean - true / false
supportsCopyToCache 是否支持复制到应用缓存目录 Boolean - true / false
requiresSystemRegistration 是否依赖系统注册后才能显示入口 Boolean - true / false
notes 当前平台说明或限制提示 String - -

hasPendingImportFiles()

返回当前是否有待处理导入文件。

getPendingImportCount()

返回当前待处理导入文件数量。

consumePendingImportFiles(options?)

参数配置

参数 说明 类型 默认值 可选值
copyToCache 是否复制到应用缓存目录;开启后更适合上传、预览、归档 Boolean true true / false

clearPendingImportFiles()

清空当前待处理导入记录。

返回结果

单个文件项

参数 说明 类型 默认值 可选值
name 文件名称 String - -
path 业务层优先使用的文件路径 String - -
nativePath 原生层可直接使用的本地绝对路径 String - -
uri 外部应用传入的原始 uri String - -
size 文件大小,单位字节 Number 0 -
ext 文件后缀,不带 . String '' -
mimeType 文件 MIME 类型 String '' -
sourceApp 来源应用标识 String '' -
sourceType 来源方式 String - share / open-in
copied 是否已复制到应用缓存目录 Boolean false true / false

完整结果

参数 说明 类型 默认值 可选值
ok 本次读取是否成功 Boolean false true / false
platform 当前平台标识 String - android / ios / other
count 本次返回文件数量 Number 0 -
copied 本次返回的文件是否已复制到缓存目录 Boolean false true / false
files 文件结果数组 Array [] -
errCode 错误码,成功时为 0 Number 0 -
errMsg 错误信息,成功时为空字符串 String '' -

最小示例

import {
  getPendingImportCount,
  consumePendingImportFiles,
} from '@/uni_modules/austin-import-files'

const pendingCount = getPendingImportCount()

if (pendingCount > 0) {
  const res = consumePendingImportFiles({
    copyToCache: true,
  })
  console.log('import-files-result', res)
}

注意

  • 这是“外部文件导入到 App”,不是普通文件选择器
  • Android / iOS 的系统入口名字不完全相同,常见为“共享”、“用其他应用打开”、“拷贝到”
  • 安装插件后需要重新运行或重新打包,系统注册信息才会生效
  • 插件重点是“导入并返回稳定路径”;是否预览、如何预览,取决于文件类型和你的业务处理方式

隐私、权限声明

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

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

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

暂无用户评论。