React Native、for AndroidおよびiOS。ユーザーにPDF =ボタンをクリックしたときのファイル。
Android.permission.WRITE_EXTERNAL_STORAGE
をAndroidマニフェストファイル。ダウンロードしようとしているファイルが存在することを再確認しました(存在しない場合、ライブラリはエラーをスローします)この問題の他の解決策は見つかりません。 PDFを表示するためのライブラリを見つけましたが、ユーザーにPDFをダウンロードさせたいと思います。私を手伝ってくれますか?
1時間前にダウンロード機能を実装しました:p
次の手順を実行します:
a)npm install rn-fetch-blob
b)インストール手順に従います。
b2)rnpmを使用せずにパッケージを手動でインストールする場合は、 wiki に移動します。
c)最後に、アプリ内でファイルをダウンロードできるようにしました。
const { config, fs } = RNFetchBlob
let PictureDir = fs.dirs.PictureDir // this is the pictures directory. You can check the available directories in the wiki.
let options = {
fileCache: true,
addAndroidDownloads : {
useDownloadManager : true, // setting it to true will use the device's native download manager and will be shown in the notification bar.
notification : false,
path: PictureDir + "/me_"+Math.floor(date.getTime() + date.getSeconds() / 2), // this is the path where your downloaded file will live in
description : 'Downloading image.'
}
}
config(options).fetch('GET', "http://www.example.com/example.pdf").then((res) => {
// do some magic here
})
Expoを使用している場合、react-native-fetch-blob
は機能しません。 FileSystem
を使用します。
これが実際の例です:
const { uri: localUri } = await FileSystem.downloadAsync(remoteUri, FileSystem.documentDirectory + 'name.ext');
これで、ダウンロードしたファイルへのパスを持つlocalUri
ができました。 name.ext
の代わりに独自のファイル名を設定してください。