我当前正在尝试打开从react-native-camera
模块保存在缓存中的图像。根据此Open android Gallery App from react native app,他们在传递content://
网址而不是file://
网址时设法做到了,但是经过一番研究,我找不到将文件uris转换为内容的任何方法-只是相反。我可以通过以下方式获取图像文件路径:
import RNFS from 'react-native-fs'
import { Linking } from 'react-native'
RNFS.readDir(RNFS.CachesDirectoryPath)
.then(arr => RNFS.readDir(arr[0].path)) // The Camera directory
.then(arr => arr.forEach(item => {
const contentURI = somehowConvertPathToContentURI(item.path)
Linking.canOpenURL(contentURI)
.then(able => able ? Linking.openURL(contentURI) : console.log('No application available'))
.catch(console.log)
}))
.catch(console.log)
记录的路径为/data/user/0/com.myapp/cache/Camera/ad8db2ca-4739-47cc-b18d-c5147c8c26e0.jpg
。在前面添加file://
会给我文件uri,content://
呢?
请注意,如果我使用react-native-fs
读取并将其转换为base64,然后将base64提供给react-native的<Image>
组件,则可以直接显示该图像-但我d想使用图库应用程序打开该应用程序