React native 使用RN-FETCH-BLOB下载mp3文件

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)

我正在尝试从一个链接下载一个带有ios中rn fetch blob的mp3文件 . 然后我将与react native share共享此文件,但我无法检索正确的文件,就像它不是mp3文件一样。这是whatsapp无法打开的文件

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://
声明是有效的