requestPermission static method
申请权限,除了移动端直接返回成功
Implementation
static void requestPermission(
BuildContext context, PermissionReq permissionReq) async {
if (!context.isAndroid() && !context.isIOS()) {
// 如果不是Android端且不是iOS端,则默认走有权限回调
_onGranted(permissionReq.onGranted);
return;
}
var permissions = permissionReq.permissions;
if (permissions.isEmpty) {
_onGranted(permissionReq.onGranted);
return;
}
List<Future<PermissionStatus>> statusFutureList = [];
for (var permission in permissions) {
statusFutureList.add(permission.status);
}
Future.wait(statusFutureList).then((value) {
bool isAllGranted = true;
for (var permission in value) {
if (!permission.isGranted && !permission.isLimited) {
isAllGranted = false;
break;
}
}
Log.d("当前权限是否全部已经允许: $isAllGranted");
if (isAllGranted) {
_onGranted(permissionReq.onGranted);
} else {
_checkRequestPermission(context, permissionReq);
}
}, onError: (e) {
_onDenied(permissionReq.onDenied, false);
}).catchError((e) {
return e;
});
}