Flutter 权限验证插件permission_handler 详细介绍

虞安康
2023-12-01

添加依赖

  #权限
dependencies:
  permission_handler: ^9.2.0

具体使用

1.在代码中添加自己具体需要动态申请的权限,权限动态申请场景是应对Android6.x以上的系统。iOS的权限申请还是参考源生的权限添加方式,在info.list中添加好对应的权限。

  /// 申请定位权限
  /// 授予定位权限返回true, 否则返回false
  Future<bool> requestLocationPermission() async {


    Map<Permission, PermissionStatus> statuses = await [
      Permission.location,
      Permission.storage,
      Permission.camera,
    ].request();
    //验证权限是否授权
    var status = await Permission.location.status;

    if (status == PermissionStatus.granted) {
      //已经授权
      return true;
    } else {
    	
    }
  }

在具体使用中,尤其是iOS端,如果没有第一次没有授权,后面是不会再弹出授权窗口的,所以此时需要在APP端打开设置,让用户自己去开启对应的权限:

   //验证权限是否授权
    var status = await Permission.location.status;

    if (status == PermissionStatus.granted) {
      //已经授权
      return true;
    } else {
    	//最好是在调用openAppSettings();之前加一个弹窗说明用户没有对应权限需要去设置页面开启
    	openAppSettings();
    }
 类似资料: