更新记录
1.0.0(2026-06-29)
- 首发版本
- 支持监听外部应用通过系统「打开方式」传入的文件数据
- 支持监听外部应用通过系统「分享」传入的文件数据
- 支持单文件分享(ACTION_SEND)和多文件分享(ACTION_SEND_MULTIPLE)
- 支持通过 URL Scheme 打开(iOS)
- 支持文件信息读取(文件名、路径、大小、MIME类型)
- 支持 Android 和 iOS 双平台
- 支持 uni-app 和 uni-app-x
平台兼容性
uni-app(5.07)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | 5.0 | 1.0.0 | 14 | 1.0.0 | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(5.07)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|---|
| - | - | 5.0 | 1.0.0 | 14 | 1.0.0 | - | - |
cc-open-with
监听外部应用通过系统「打开方式」或「分享」功能传入的文件数据,支持 Android 和 iOS 平台。
适用场景
- 用户在文件管理器中选中文件,选择用你的 App 打开
- 用户在其他 App(如相册、浏览器)中分享文件到你的 App
- 用户通过 URL Scheme 打开你的 App 并携带文件
使用方法
1. 调用 openWith 监听外部文件
在 App.vue 的 onLaunch 或页面 onLoad 中调用 openWith 注册回调,即可获取外部传入的文件数据。
import { openWith } from '@/uni_modules/cc-open-with';
openWith({
success(res) {
console.log('收到外部文件:', res.files);
// res.files 为数组,每个元素包含 name、path、size、type
},
fail(err) {
console.error('获取失败:', err.errMsg);
},
complete(res) {
console.log('调用完成');
}
});
2. 返回的文件信息
interface OpenWithFile {
name: string; // 文件名
path: string; // 文件路径(Android 为 content:// URI,iOS 为 file:// 本地路径)
size: number; // 文件大小(字节)
type: string | null; // MIME 类型
}
3. 错误码
| errCode | 说明 |
|---|---|
| 0 | 成功 |
| 9010001 | 未接收到外部文件数据 |
| 9010002 | 获取文件信息失败 |
原生配置
Android
插件已内置 AndroidManifest.xml 配置,自动注册 OpenWithActivity 并声明以下 intent-filter:
- ACTION_VIEW: 支持图片、视频、音频、PDF、Word、Excel、PPT、纯文本及通用文件
- ACTION_SEND: 接收单文件分享
- ACTION_SEND_MULTIPLE: 接收多文件分享
如需调整支持的文件类型,修改 utssdk/app-android/AndroidManifest.xml 中的 intent-filter 即可。
iOS
插件已内置 info.plist 配置,通过 CFBundleDocumentTypes 声明支持的文件类型:
- 图片(JPEG、PNG、GIF、BMP、WebP、TIFF、HEIC、SVG)
- PDF 文档
- Word 文档
- Excel 文档
- PPT 文档
- 视频
- 音频
- 纯文本
- 通用数据(兜底)
同时启用 UIFileSharingEnabled(iTunes 文件共享)和 LSSupportsOpeningDocumentsInPlace(原地打开文档)。
注意事项
openWith建议在App.vue的onLaunch中尽早调用,以确保不遗漏外部传入的文件。- Android 平台通过
content://URI 返回文件路径,可以使用相关API 进行后续处理。 - iOS 平台会将外部文件拷贝到 App 临时目录后再返回路径,避免安全作用域限制。
- 需要自定义基座才会生效
示例
// App.vue
import { openWith } from '@/uni_modules/cc-open-with';
export default {
onLaunch() {
openWith({
success(res) {
uni.showToast({
title: `收到 ${res.files.length} 个文件`,
icon: 'none'
});
// 处理文件...
},
fail(err) {
console.log('没有外部文件传入');
}
});
}
}

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 1423
赞赏 25
下载 12357558
赞赏 1926
赞赏
京公网安备:11010802035340号