Flutter相册权限请求脚本优化:自定义拒绝后的弹窗提示
优化Flutter相册权限请求逻辑,满足弹窗提示与重复请求需求
以下是符合你需求的完整实现代码:
class __ImageWidgetState extends State<_ImageWidget> { Future<bool> requestGalleryPermission() async { const Permission _photos = Permission.photos; final PermissionStatus permissionStatus = await _photos.request(); if (permissionStatus == PermissionStatus.granted) { return true; } else { // 弹出权限拒绝提示弹窗 await showDialog( context: context, builder: (context) => AlertDialog( content: const Text("因您选择了不允许,将无法更换头像及上传图片"), actions: [ TextButton( onPressed: () => Navigator.of(context).pop(), child: const Text("确定"), ) ], ), ); return false; } } }
关键改动说明
- 权限拒绝弹窗实现:当用户拒绝权限时,通过
showDialog弹出指定内容的提示弹窗,点击「确定」按钮即可关闭弹窗,给用户明确的操作反馈 - 保证每次操作触发权限请求:每次调用
requestGalleryPermission()都会执行_photos.request(),无论用户之前是否拒绝过权限,都会触发系统权限请求弹窗,满足“每次尝试更换/上传图片都触发请求”的要求 - 代码规范优化:修正原代码中拼写错误的变量名
permissionss为permissionStatus,提升代码可读性
内容的提问来源于stack exchange,提问作者DevMMO
相关产品推荐
相关产品推荐

