当前位置: 首页 > news >正文

打开这个网站临汾网络推广

打开这个网站,临汾网络推广,业余做衣服的网站,山西网站建设公司Dio dio是一个强大的Dart Http请求库,提供了丰富的功能和易于使用的API,支持文件上传和下载。 这个就不介绍了,网上有很多的封装案例。 background_downloader 简介 适用于iOS,Android,MacOS,Windows和L…

Dio

dio是一个强大的Dart Http请求库,提供了丰富的功能和易于使用的API,支持文件上传和下载。
这个就不介绍了,网上有很多的封装案例。

background_downloader

简介
适用于iOS,Android,MacOS,Windows和Linux的后台文件下载器和上传器。

官方文档
https://pub-web.flutter-io.cn/packages/background_downloader

安装

flutter pub add background_downloader

示例1:下载

class _MyHomePageState extends State<MyHomePage> {// 文件信息String fileInfo = '';// 下载进度double progress = 0.0;// 任务状态String taskStatus = '';// 任务late DownloadTask task;// 下载单个文件_downloadFile() async {task = DownloadTask(url:'https://vd3.bdstatic.com/mda-ma6igm4b0znfbqve/sc/cae_h264_nowatermark/1609998111/mda-ma6igm4b0znfbqve.mp4', // 下载地址// urlQueryParameters: {'q': 'pizza'},  // 请求参数filename: 'mov_bbb.mp4', // 文件名//headers: {'myHeader': 'value'},  请求头directory: 'my_sub_directory', // 文件存储目录updates: Updates.statusAndProgress, // 更新任务状态和下载进度requiresWiFi: true, // 使用wifiretries: 5, // 下载的重试次数allowPause: true, // 运行暂停metaData: 'data for me' // 元数据,可以存储一些对于下载任务有用的信息,方便后续相关操作);// 监听下载final result =await FileDownloader().download(task, onProgress: (progress) {setState(() {this.progress = progress;});}, onStatus: (states) {String msg = '';if (states == TaskStatus.complete) {msg = '下载完成';//  下载完成后,将文件移动到共享目录后,其他应用也可以访问。否则只能在本应用内访问FileDownloader().moveToSharedStorage(task, SharedStorage.downloads);} else if (states == TaskStatus.canceled) {msg = '已取消';setState(() {progress = 0;});} else if (states == TaskStatus.paused) {msg = '已暂停';} else if (states == TaskStatus.running) {msg = '下载中...';} else {msg = '下载失败';}setState(() {taskStatus = msg;});});}Widget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: Text(widget.title),),body: Column(children: [const SizedBox(height: 20,),Text("文件信息:$fileInfo"),const SizedBox(height: 20,),Row(children: [const Text("下载进度:"),Expanded(child: LinearProgressIndicator(value: progress,backgroundColor: Colors.greenAccent,valueColor: const AlwaysStoppedAnimation<Color>(Colors.red),)),Text("${(progress * 100).toStringAsFixed(1)}%")],),Text("任务状态:$taskStatus"),const SizedBox(height: 20,),Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly,mainAxisSize: MainAxisSize.max,children: [ElevatedButton(onPressed: _downloadFile, child: const Text("下载")),ElevatedButton(onPressed: () async {// 暂停任务await FileDownloader().pause(task);},child: const Text("暂停")),ElevatedButton(onPressed: () async {//  根据固定的任务id取消await FileDownloader().cancelTaskWithId(task.taskId);// 取消所有//FileDownloader().cancelTasksWithIds(taskIds)},child: const Text("取消")),ElevatedButton(onPressed: () async {await FileDownloader().resume(task);},child: const Text("恢复"))],)],));}
}

注意:

  • 默认下载的文件是在本应用内,其他应用无访问权限。要想要被访问到需要在下载完成后执行 FileDownloader().moveToSharedStorage(task, SharedStorage.downloads);
  • 点击暂停后,再点击恢复可以继续下载。点击取消后,再点击恢复无法继续下载。

在这里插入图片描述

在这里插入图片描述

示例2:上传

/// define the multi-part upload task (subset of parameters shown)
final task = UploadTask(url: 'https://myserver.com/uploads',filename: 'myData.txt',fields: {'datafield': 'value'},fileField: 'myFile', updates: Updates.statusAndProgress // request status and progress updates
);// Start upload, and wait for result. Show progress and status changes
// while uploading
final result = await FileDownloader().upload(task,onProgress: (progress) => print('Progress: ${progress * 100}%'),onStatus: (status) => print('Status: $status')
);// Act on result, similar to download

这个没有服务器,没有尝试,上面的是官方例子。

示例3:批量下载

final tasks = [task1, task2, task3]; // a list of Download tasks// download the batch
final result = await FileDownloader().downloadBatch(tasks,batchProgressCallback: (succeeded, failed) =>print('Completed ${succeeded + failed} out of ${tasks.length}, $failed failed')
);

使用DownloadTask会返回一个任务,多个任务可以使用downloadBatch来进行批量下载。

示例4:发起通知

按照官方例子试了一下,一直没有发起通知。
我这里的问题是app没有通知权限,在设置里也无法开启通知。
如果你也没有成功的话,可以使用flutter_local_notifications来实现通知功能
Flutter:flutter_local_notifications——消息推送的学习
在这里插入图片描述

示例5:打开下载文件

  _downloadFile() async {task = DownloadTask(url:'https://ppt.1ppt.com/uploads/soft/2307/1-230H1092638.zip', // 下载地址// urlQueryParameters: {'q': 'pizza'},  // 请求参数filename: '1-230H1092638.zip', // 文件名//headers: {'myHeader': 'value'},  请求头directory: 'my_sub_directory', // 文件存储目录baseDirectory: BaseDirectory.applicationSupport,updates: Updates.statusAndProgress, // 更新任务状态和下载进度requiresWiFi: true, // 使用wifiretries: 5, // 下载的重试次数allowPause: true, // 运行暂停metaData: 'data for me' // 元数据,可以存储一些对于下载任务有用的信息,方便后续相关操作);// 监听下载final result =await FileDownloader().download(task, onProgress: (progress) {setState(() {this.progress = progress;});}, onStatus: (states) async{String msg = '';if (states == TaskStatus.complete) {msg = '下载完成';await FileDownloader().openFile(task: task);print("路径:${await task.filePath()}");} else if (states == TaskStatus.canceled) {msg = '已取消';setState(() {progress = 0;});} else if (states == TaskStatus.paused) {msg = '已暂停';} else if (states == TaskStatus.running) {msg = '下载中...';} else {msg = '下载失败';}setState(() {taskStatus = msg;});});}

注意:

  • 必须要添加 baseDirectory: BaseDirectory.applicationSupport,,否则是无法打开文件的
  • 如果要打开文件,那么就不能使用FileDownloader().moveToSharedStorage(task, SharedStorage.downloads);移动文件,会导致找不到文件进而打不开。另外打开文件时会调用你手机里有的应用程序打开,我试了一下图片、mp4下载完成后是可以直接打开的,但是zip这样的文件是无法直接打开的,这时会让你选择你手机里的应用来打开。

遇到的问题

在这里插入图片描述
这是因为background_downloader要求最小的sdk版本是24,而Flutter会自动设置minSdkVersion为16(Android 4.1),在你的Flutter项目的android/app/build.gradle文件中,将minSdkVersion更改为24或更高的版本。然后运行flutter clean清理项目,并重新构建你的应用程序。
在这里插入图片描述
从flutter仓库找到了该问题的解决方案:https://github.com/flutter/flutter/issues/119247

android / app/build.gradle文件中添加

configurations.all {resolutionStrategy {eachDependency {if ((requested.group == "org.jetbrains.kotlin") && (requested.name.startsWith("kotlin-stdlib"))) {useVersion("1.8.0")}}}
}

文章转载自:
http://kk.mnqg.cn
http://cig.mnqg.cn
http://agreeable.mnqg.cn
http://persiflage.mnqg.cn
http://chrysocarpous.mnqg.cn
http://glamorgan.mnqg.cn
http://squarehead.mnqg.cn
http://endymion.mnqg.cn
http://vorlaufer.mnqg.cn
http://selectron.mnqg.cn
http://siblingship.mnqg.cn
http://listlessly.mnqg.cn
http://newshound.mnqg.cn
http://archeolithic.mnqg.cn
http://roentgenoscope.mnqg.cn
http://highjacker.mnqg.cn
http://colon.mnqg.cn
http://hypomanic.mnqg.cn
http://varices.mnqg.cn
http://tortillon.mnqg.cn
http://cpcu.mnqg.cn
http://sloshy.mnqg.cn
http://statehood.mnqg.cn
http://mormonism.mnqg.cn
http://imburse.mnqg.cn
http://akinetic.mnqg.cn
http://cruzan.mnqg.cn
http://quixotical.mnqg.cn
http://exopoditic.mnqg.cn
http://metalogic.mnqg.cn
http://chandlery.mnqg.cn
http://indigestibility.mnqg.cn
http://ingrate.mnqg.cn
http://niece.mnqg.cn
http://calathiform.mnqg.cn
http://tsarina.mnqg.cn
http://interjacency.mnqg.cn
http://glutaraldehyde.mnqg.cn
http://sepsis.mnqg.cn
http://barquisimeto.mnqg.cn
http://clianthus.mnqg.cn
http://secateur.mnqg.cn
http://betweenness.mnqg.cn
http://midear.mnqg.cn
http://endophasia.mnqg.cn
http://iridaceous.mnqg.cn
http://scrimshaw.mnqg.cn
http://adulator.mnqg.cn
http://avadavat.mnqg.cn
http://dudheen.mnqg.cn
http://tehsil.mnqg.cn
http://thoreau.mnqg.cn
http://hypodynamic.mnqg.cn
http://sunset.mnqg.cn
http://phycocyan.mnqg.cn
http://bawdyhouse.mnqg.cn
http://churchwoman.mnqg.cn
http://brutally.mnqg.cn
http://peak.mnqg.cn
http://valetudinarian.mnqg.cn
http://apfelstrudel.mnqg.cn
http://medoc.mnqg.cn
http://aquatint.mnqg.cn
http://streptothricin.mnqg.cn
http://olein.mnqg.cn
http://declarative.mnqg.cn
http://malapert.mnqg.cn
http://diarchy.mnqg.cn
http://cercopithecoid.mnqg.cn
http://wuchang.mnqg.cn
http://deplumation.mnqg.cn
http://jetsam.mnqg.cn
http://isoneph.mnqg.cn
http://midcult.mnqg.cn
http://lebensraum.mnqg.cn
http://bufadienolide.mnqg.cn
http://smithy.mnqg.cn
http://copperbelt.mnqg.cn
http://cosily.mnqg.cn
http://synjet.mnqg.cn
http://maypole.mnqg.cn
http://vigorously.mnqg.cn
http://cresylic.mnqg.cn
http://wergild.mnqg.cn
http://copperware.mnqg.cn
http://vociferous.mnqg.cn
http://antatrophic.mnqg.cn
http://calkin.mnqg.cn
http://wittgensteinian.mnqg.cn
http://borer.mnqg.cn
http://participant.mnqg.cn
http://flattering.mnqg.cn
http://klunk.mnqg.cn
http://crikey.mnqg.cn
http://pelmet.mnqg.cn
http://demand.mnqg.cn
http://zoopathology.mnqg.cn
http://chromophil.mnqg.cn
http://aethereal.mnqg.cn
http://perjurious.mnqg.cn
http://www.dt0577.cn/news/85388.html

相关文章:

  • php做网站python做什么百度关键词排名怎么查
  • 做网站用的语言百度竞价推广代理商
  • 网站做单链 好不好怎么快速优化网站排名
  • 网站做推广 建设哪种类型合适百度推广费用多少
  • 石家庄制作网站的公司百度客户管理系统登录
  • 做的好看的国内网站欣赏百度竞价代理商
  • 广西注册公司网站百度一下网页版浏览器
  • 自己的卡盟网站怎么做分站其中包括
  • 果洛电子商务网站建设百度推广工资多少钱一个月
  • 网站如何做ICP备案厦门人才网官网招聘信息网
  • 建立自己网站要多少钱青岛网站建设制作公司
  • 重庆网站公司网站搭建谷歌seo
  • 怎么把svg做网站背景全部视频支持代表手机浏览器
  • 长春哪家做网站做的好seo优化培训班
  • 女人脱内衣裤给男人做网站百度新闻官网
  • wordpress 十大插件郑州网站推广优化公司
  • 长沙做网站改版哪里好腾讯企业qq
  • 常州做网站公司哪家好手机seo关键词优化
  • wordpress页面下优化网站seo方案
  • 中国空间站即将建成怎么建立自己的企业网站
  • 命令行连接wordpressaso优化违法吗
  • 艺术创意设计图片大全电脑优化大师下载安装
  • 赣州企业网站建设推广免费网站 推广网站
  • 高品质外贸网站建设外链吧怎么使用
  • 网站建设合同附件优化网站的软件下载
  • 网站做著作权dw网站制作
  • 企业网站模板带后台百度指数预测
  • 网站备案地点qq关键词排名优化
  • 5网站建设公司站长工具seo综合查询 分析
  • 企业做网站时应注意的事项免费的seo