我正在编写一个本机iOS组件,以进行本机反应以从相机胶卷中获取PHAsset。我正在努力显示上载PHAsset,因为它没有提供用于在React Native中使用的正确URI,而且我也在编写上载组件。如何实现这一目标。
答案 0 :(得分:0)
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中实际上不是本地的东西。
答案 1 :(得分:0)
我已经使用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
}}`