兼容 IOS 端

This commit is contained in:
2026-06-03 23:37:02 +08:00
parent fb61e28e2f
commit 8f9f3a9779
20 changed files with 847 additions and 270 deletions

View File

@@ -17,6 +17,24 @@ class PermissionService {
return permissions.toList().request();
}
/// 仅对尚未授予的权限发起系统授权弹窗,已授予则直接返回当前状态。
static Future<Map<Permission, PermissionStatus>> requestMissing(
Iterable<Permission> permissions,
) async {
final result = <Permission, PermissionStatus>{};
for (final permission in permissions) {
final current = await permission.status;
if (current.isGranted ||
current.isLimited ||
current.isPermanentlyDenied) {
result[permission] = current;
continue;
}
result[permission] = await permission.request();
}
return result;
}
static Future<bool> ensure(
Permission permission, {
bool openSettingsWhenPermanentlyDenied = true,