You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native iOS端如何获取共享相册?

解决方案:Expo获取iCloud共享相册的问题

当前Expo Media Library的限制

Expo的MediaLibrary模块目前不支持直接获取iCloud共享相册:

  • 你使用的await MediaLibrary.getAlbumsAsync({ includeSmartAlbums: true })参数仅用于包含系统智能相册(如「最近删除」「收藏」这类自动生成的相册),和云共享相册完全是两个范畴。
  • 底层封装的iOS Photos框架默认没有开放共享相册的访问入口,Expo官方API也未提供对应配置项。

可行实现方案

1. 基于EAS Build/裸React Native项目调用原生API

如果你的项目可以切换到EAS Build构建(或已经是裸React Native项目),可以通过编写原生模块直接调用iOS的Photos Framework:

  • 在iOS原生代码中,使用PHAssetCollection.fetchAssetCollections(with: .album, subtype: .albumCloudShared, options: nil)获取所有云共享相册。
  • 通过React Native的原生模块桥接,将共享相册的数据传递到JS层。
  • 注意:需要在Info.plist中添加NSPhotoLibraryUsageDescription和NSPhotoLibraryAddUsageDescription权限描述,且用户必须授予「所有照片」的访问权限,才能读取共享相册内容。

2. 第三方库替代(仅限裸项目)

社区暂无可直接兼容Expo Managed项目的第三方库,但裸项目可以尝试基于原生封装的库扩展,不过最稳定的方式还是自行编写原生模块。

3. Expo Managed项目的临时替代

纯Expo Managed项目目前没有官方支持,只能通过EAS Build将项目转为可修改原生代码的架构,再实现上述原生调用逻辑。

内容的提问来源于stack exchange,提问作者Osiris92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:31:00