React native 使用RN-FETCH-BLOB下载mp3文件
我正在尝试从一个链接下载一个带有ios中rn fetch blob的mp3文件 . 然后我将与react native share共享此文件,但我无法检索正确的文件,就像它不是mp3文件一样。这是whatsapp无法打开的文件React native 使用RN-FETCH-BLOB下载mp3文件,react-native,rn-fetch-blob,React Native,Rn Fetch Blob,我正在尝试从一个链接下载一个带有ios中rn fetch blob的mp3文件 . 然后我将与react native share共享此文件,但我无法检索正确的文件,就像它不是mp3文件一样。这是whatsapp无法打开的文件 RNFetchBlob .config({ fileCache: true, appendExt : 'mp3' }) .fetch('GET', url, { //some headers .. }) .then((res)
RNFetchBlob
.config({
fileCache: true,
appendExt : 'mp3'
})
.fetch('GET', url, {
//some headers ..
})
.then((res) => {
// the temp file path
console.log('The file saved to ', res.path())
const shareOptions = {
title: 'Share via',
message: 'Do not miss to share meme sounds',
url: 'file://' + res.path(),
};
Share.share(shareOptions)
.then((res) => console.log(res))
.catch((err) => err && console.log(err))
})
下载的文件返回如下路径/var/mobile/Containers/Data/Application/BC8BC14B-FE8B-4E2C-ACA4-799270D8972B/Documents/RNFetchBlob\u tmp/RNFetchBlobTmp\u m6vz8itit4jxuxpb8tabrm
如果我添加appendExt:'mp3'
它会返回如下内容/var/mobile/Containers/Data/Application/BC8BC14B-FE8B-4E2C-ACA4-799270D8972B/Documents/RNFetchBlob\u tmp/RNFetchBlobTmp\u m6vz8itit4jxuxpb8tabrm.mp3
如果我把它分享在Whatap上,我会得到这些类似文件的东西。这不是mp3文件。这甚至不是一个文件,我无法打开它。问题是我是否在ios中以正确的方式下载mp3文件。如果我看到了,为什么我看不到以.mp3扩展名结尾的路径?或者我只是用了一种错误的方式来使用共享库,请有人告诉我。
我解决了这个问题。RN Fetch Blob路径在iOS中不是很好。最好像这样指定路径
const shareOptions = {
subject: 'Music',
title: '',
message: 'Do not miss to share meme sounds',
url: res.path(),
};
let path=RNFetchBlob.fs.dirs.DocumentDir
并在RNFetchBlob.config中的路径末尾传递要下载的文件,如下所示
RNFetchBlob
.config({
fileCache: true,
path: path + '/sound.mp3',
})
如果您想将文件共享到随机应用程序,则更为重要。像这样使用react native share library的url参数
const shareOptions = {
subject: 'Music',
title: '',
message: 'Do not miss to share meme sounds',
url: res.path(),
};
url:'file://+res.path()
和url:res.path()
在Android中都能正常工作。但是在我的例子中,没有文件的url://
声明是有效的