用于响应本机应用程序的PHAsset图像URI

时间:2018-09-18 11:04:30

标签: objective-c reactjs react-native react-native-ios phasset

我正在编写一个本机iOS组件,以进行本机反应以从相机胶卷中获取PHAsset。我正在努力显示上载PHAsset,因为它没有提供用于在React Native中使用的正确URI,而且我也在编写上载组件。如何实现这一目标。

2 个答案:

答案 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

}}`