flutter 下载文件
  sX9JkgY3DY86 2023年11月13日 17 0

一、Android

1.引入插件

permission_handler: 5.0.1+1 #权限请求
path_provider: 1.6.14 #路径
flutter_downloader: 1.4.4 #下载

2. androidmanifest.xml

<!--网络权限-->
<uses-permission android:name="android.permission.INTERNET"/>
<!-- 读写存储权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 安装权限 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

<application
android:networkSecurityConfig="@xml/network_security_config"><!--网络安装配置-->
<!--下载需要的配置-->
<provider
android:name="vn.hunghd.flutterdownloader.DownloadedFileProvider"
android:authorities="${applicationId}.flutter_downloader.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
</application>

3.

class _DownTestState extends State<DownTest> {

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: MaterialButton(
child: Text("data",style: TextStyle(color: Colors.white),),
color: Colors.blue,
onPressed: (){
()async{
//获得临时地址
Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;
print(tempPath);
//请求下载地址
final taskId = await FlutterDownloader.enqueue(
url: 'http://192.168.18.14:5000/down/1.apk',//下载地址
savedDir: tempPath,//保存路径
showNotification: true, // show download progress in status bar (for Android)
openFileFromNotification: true, // click on notification to open downloaded file (for Android)
);

print("taskId:"+taskId);
}();
},
),
),
);
}

void initState() {

//请求权限
()async{
Map<Permission, PermissionStatus> statuses = await [ Permission.storage].request();
}();

//初始化
() async{
WidgetsFlutterBinding.ensureInitialized();
await FlutterDownloader.initialize(
debug: true // optional: set false to disable printing logs to console
);
//监听回调
FlutterDownloader.registerCallback(downloadCallback);
}();

}

//下载回调方法
static void downloadCallback(String id, DownloadTaskStatus status, int progress) {
print("id:" + id);
print("status:" + status.toString());
print("progress:" + progress.toString());
}
}

 

二、IOS

1.开启background mode

flutter 下载文件_ide

 

flutter 下载文件_android_02

 

 

 2.添加sqlite

flutter 下载文件_ide_03

 

 3.

 



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: flutter Material风格-按钮 下一篇: flutter 空间
  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  b1UHV4WKBb2S   2023年11月13日   24   0   0 ide抗锯齿
  iD7FikcuyaVi   2023年11月30日   14   0   0 MacWindowsandroid
  b1UHV4WKBb2S   2023年11月13日   21   0   0 裁剪ideflutter
  zSWNgACtCQuP   2023年11月13日   19   0   0 ide
sX9JkgY3DY86