我使用react-native 0.51并且希望为我的应用的iOS用户提供访问相机胶卷的功能,其中包括存储在iCloud Photo Library中的内容(即只有本地存储的缩略图),就像在原生iOS中一样照片应用
文档很薄,但我希望这是常用的功能。但是,当我跑:
CameraRoll.getPhotos({
first: 100,
assetType: 'All',
})
我使用page_info.has_next_page == false
返回了一页结果(比我的照片库少很多)。有趣的是,所有提供的图像记录都具有isStored
属性(始终为true
)。
目前RCTCameraRoll是否支持iCloud Photo Library?如果没有,您是否有任何替代方案可以获得良好的体验?
理想情况下,Android支持可在同一个库中使用。
答案 0 :(得分:1)
没有。检查库的源代码(https://github.com/facebook/react-native/tree/master/Libraries/CameraRoll),可以看到除了RCTPhotoLibraryImageLoader之外,该库是使用不推荐使用的现有支持iCloud的照片库的AssetsLibrary API(自iOS 9开始)编写的。 RCTPhotoLibraryImageLoader已更新为现代Photos API(https://developer.apple.com/documentation/photos?language=objc)以允许下载云存储的URI,但getPhotos
似乎无法返回它们或不一致(当我调用时) getPhotos
groupTypes:'All'
new Vue({
el: '#app',
data: {
questions: [
['test1.1', 'test1.2'],
['test2.1', 'test2.2']
]
}
})
,某些结果似乎是对某些远程缓存内容的引用,但我的大多数iCloud存储的照片根本没有出现。
另一种选择是react-native-photos-framework,这里可以找到仅限iOS的Photos API: https://github.com/olofd/react-native-photos-framework
另一种可能对某些人有用的替代方案是一个组件,它是本机图像选择器和相机对象的包装器: https://github.com/react-community/react-native-image-picker 这是相对严格的(没有多选,有限的外观控制),但作为交换,一些棘手的细节是为你处理的,例如下载iCloud内容。