Android 反应本机后台下载
我将要构建一个本地存储多个MySqlite*.db文件的应用程序。这些用于向应用程序填充数据 应用程序应定期检查其中一个文件是否有更新版本,如果有,请下载并替换该文件的旧版本。 此更新过程应在后台进行,而应用程序处于非活动状态,甚至处于关闭状态 我见过几个插件,它们可以用来在后台执行任务(如)。这可以用来定期检查更新,但iOS上30秒的时间限制可能不足以下载*.db文件。此外,该插件强制要求Android API的最低版本为21Android 反应本机后台下载,android,ios,react-native,Android,Ios,React Native,我将要构建一个本地存储多个MySqlite*.db文件的应用程序。这些用于向应用程序填充数据 应用程序应定期检查其中一个文件是否有更新版本,如果有,请下载并替换该文件的旧版本。 此更新过程应在后台进行,而应用程序处于非活动状态,甚至处于关闭状态 我见过几个插件,它们可以用来在后台执行任务(如)。这可以用来定期检查更新,但iOS上30秒的时间限制可能不足以下载*.db文件。此外,该插件强制要求Android API的最低版本为21 我的问题是:是否可以在后台轮询更新并下载它们,替换旧文件?我找到了
我的问题是:是否可以在后台轮询更新并下载它们,替换旧文件?我找到了一些有用的插件 1。反应本机获取blob 它有
IOSBackgroundTask
选项
RNFetchBlob
.config({
path : dest_file_path,
IOSBackgroundTask: true,
overwrite: true,
indicator: true,
})
.fetch('GET', download_url, {
//some headers ..
})
.progress( (received, total) => {
console.log('progress : '+ received + ' / ' + total);
})
.then((res) => {
console.log('# The file saved to :', file_path);
})
顺便说一句,它似乎不能正常工作。
不知道我是否错过了什么
2。反应本机fs
它看起来很好用。顺便说一下,当我尝试通过推送通知在后台下载时,除非我打开应用程序,否则它不会开始下载。
有人能解决这个问题吗?我找到了一些有用的插件 1。反应本机获取blob 它有
IOSBackgroundTask
选项
RNFetchBlob
.config({
path : dest_file_path,
IOSBackgroundTask: true,
overwrite: true,
indicator: true,
})
.fetch('GET', download_url, {
//some headers ..
})
.progress( (received, total) => {
console.log('progress : '+ received + ' / ' + total);
})
.then((res) => {
console.log('# The file saved to :', file_path);
})
顺便说一句,它似乎不能正常工作。
不知道我是否错过了什么
2。反应本机fs
它看起来很好用。顺便说一下,当我尝试通过推送通知在后台下载时,除非我打开应用程序,否则它不会开始下载。
任何人都能解决这个问题吗?对于后台下载,我使用过的最好的模块是暂停、恢复和下载百分比
import RNBackgroundDownloader from 'react-native-background-downloader';
let task = RNBackgroundDownloader.download({
id: 'dbfile',
url: 'https://link-to-db/MySqlite.db'
destination: `${RNBackgroundDownloader.directories.documents}/MySqlite.db`
}).begin((expectedBytes) => {
console.log(`Going to download ${expectedBytes} bytes!`);
}).progress((percent) => {
console.log(`Downloaded: ${percent * 100}%`);
}).done(() => {
console.log('Download is done!');
}).error((error) => {
console.log('Download canceled due to error: ', error);
});
// Pause the task
task.pause();
// Resume after pause
task.resume();
// Cancel the task
task.stop();
此模块也适用于iOS,您可以在后台连续下载多个文件。对于在后台下载,我使用过的最好的模块是pause、resume和下载百分比
import RNBackgroundDownloader from 'react-native-background-downloader';
let task = RNBackgroundDownloader.download({
id: 'dbfile',
url: 'https://link-to-db/MySqlite.db'
destination: `${RNBackgroundDownloader.directories.documents}/MySqlite.db`
}).begin((expectedBytes) => {
console.log(`Going to download ${expectedBytes} bytes!`);
}).progress((percent) => {
console.log(`Downloaded: ${percent * 100}%`);
}).done(() => {
console.log('Download is done!');
}).error((error) => {
console.log('Download canceled due to error: ', error);
});
// Pause the task
task.pause();
// Resume after pause
task.resume();
// Cancel the task
task.stop();
此模块也适用于iOS,您可以在后台一行下载多个文件。+1到RNFS示例。根据我的经验,RNFetchBlob是一个不可靠的选择,原因有二。1.它没有维护。2.它会在大文件下载期间阻止JS线程,这将使你的应用程序“冻结”,直到过程结束。使用rn fetch blob,有人在ios上下载背景吗?我尝试使用它,但对于RNFS示例来说,sill不起作用。根据我的经验,RNFetchBlob是一个不可靠的选择,原因有二。1.它没有维护。2.它会在大文件下载期间阻止JS线程,这将使你的应用程序“冻结”,直到过程结束。使用rn fetch blob,有人在ios上下载背景吗?我试着用它,但窗台不起作用