用于反应本机应用程序的 PHAsset 图像 URI
Posted
技术标签:
【中文标题】用于反应本机应用程序的 PHAsset 图像 URI【英文标题】:PHAsset image URI for react native application 【发布时间】:2018-09-18 11:04:29 【问题描述】:我正在编写一个原生 ios 组件,用于响应原生以从相机胶卷中获取 PHAsset。我正在努力展示一个 PHAsset 的上传,因为它没有提供正确的 URI 以用于本机反应,而且我也在编写一个上传组件。如何做到这一点。
【问题讨论】:
你好,这个库是你建的吗?我有兴趣使用它,谢谢 【参考方案1】:我已经使用 expo-media-library 解决了这个问题 https://docs.expo.io/versions/latest/sdk/media-library
async myFunc()
let uri = "ph://ED7AC36B-A150-4C38-BB8C-B6D696F4F2ED/L0/001"
let myAssetId = uri.slice(5);
let returnedAssetInfo = await MediaLibrary.getAssetInfoAsync(myAssetId);
console.log(returnedAssetInfo.localUri); // you local uri link to get the file
`
【讨论】:
【参考方案2】:React Native 目前对PHAsset
(又名PHImageLibrary
)URI 的支持非常复杂,例如photos://A6A2CEBD-766E-4BD7-980C-71ED7828674E/L0/001
。它对已弃用的ALAssetsLibrary
有更好的支持,例如assets-library://asset/asset.MOV?id=A6A2CEBD-766E-4BD7-980C-71ED7828674E&ext=MOV
(注意这是视频,不是照片,但想法是一样的)。
您会注意到其中的 ID 是相同的,只是前缀/后缀发生了变化。尝试自己操作字符串。
此外,基本上没有任何东西支持没有photos://
或assets-library://
前缀的本地URI。 PHAssets
没有那个,因为~~~苹果的东西~~~。尝试在前面加上 photos://
。
旁注,这些 URI 将适用于 iCloud 中实际上不是本地的东西。
【讨论】:
以上是关于用于反应本机应用程序的 PHAsset 图像 URI的主要内容,如果未能解决你的问题,请参考以下文章