上个星期因为要使用Flutter开始进行开发,所以,决定要开始总结下:
第一,确定开发的思路是怎么样的:
截屏2021-04-24 下午9.16.06.png
确定开发思路之后就开动了!!
1、使用Dio进行下载功能:
Response response = await dio.download(参数1:下载的url,参数2:下载保存的路径,参数3:下载的监听);
2、下载之前需要做的准备:
一、现在保存的路径,使用path_provider插件,获取安卓或ios的保存路径
//获取保存路径
static Future<String> _getPhoneLocalPath(BuildContext context) async {
final directory = Theme.of(context).platform == TargetPlatform.android
? await getExternalStorageDirectory()
: await getApplicationDocumentsDirectory();
return directory.path;
}
二、现在保存的动态权限申请:
第一,先要在android里面的AndroidManifest.xml文件,进行权限的申请
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
第二,使用permission_handler这个权限申请的插件进行动态权限的申请
//检查是否有储存权限
static Future<bool> _checkPermissionFunction(BuildContext context) async {
if (Theme.of(context).platform == TargetPlatform.android) {
PermissionStatus permission = await Permission.storage.status;
if (permission.isDenied) {
Permission.storage.request();
} else if (permission.isPermanentlyDenied) {
openAppSettings();
} else {
return true;
}
} else {
return true;
}
return false;
}
然后呢,就是安装使用的install_plugin第三方库
InstallPlugin.installApk(参数1:安装包的路径,参数2:安装包名 ).then((value) => null);
好了!!散花结束,思路都有了,拼接起来不难吧!!