feat:修复IOS点击头像选择相册时出现的异常

This commit is contained in:
liyi 2025-03-11 13:57:39 +08:00
parent e6b6672ceb
commit e276672507

View File

@ -69,14 +69,22 @@ class PermissionDialog {
CupertinoDialogAction(
child: Text('不允许'.tr),
onPressed: () {
BuglyTool.uploadExceptionWithEvent(eventStr: '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', detail: "不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'");
BuglyTool.uploadExceptionWithEvent(
eventStr:
'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}',
detail:
"不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'");
Get.back(result: false);
},
),
CupertinoDialogAction(
child: Text('允许'.tr),
onPressed: () {
BuglyTool.uploadExceptionWithEvent(eventStr: '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', detail: "不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'");
BuglyTool.uploadExceptionWithEvent(
eventStr:
'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}',
detail:
"不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'");
Get.back(result: true);
},
),
@ -110,10 +118,15 @@ class PermissionDialog {
if (Get.context == null) {
return false;
}
final AndroidDeviceInfo androidInfo = await DeviceInfoPlugin().androidInfo;
final bool isAndroid33 =
AppPlatform.isAndroid && androidInfo.version.sdkInt >= 33;
bool isAndroid33 = false;
try {
final AndroidDeviceInfo androidInfo =
await DeviceInfoPlugin().androidInfo;
isAndroid33 = AppPlatform.isAndroid && androidInfo.version.sdkInt >= 33;
} catch (e) {
// 使
isAndroid33 = false;
}
//
List<Permission> requestPermission() {
List<Permission> permissions;
@ -148,7 +161,7 @@ class PermissionDialog {
bool application = true;
const Permission permission = Permission.photos;
final List<Permission> permissions = requestPermission();
final dynamic cache = await Storage.getString(titles[permission]??'');
final dynamic cache = await Storage.getString(titles[permission] ?? '');
final bool isGranted = await permissionStatus(permissions);
if (AppPlatform.isAndroid && !isGranted && cache is! String) {
application = await showCupertinoDialog(
@ -187,7 +200,8 @@ class PermissionDialog {
}
}
if (application) {
final Map<Permission, PermissionStatus> statuses = await permissions.request();
final Map<Permission, PermissionStatus> statuses =
await permissions.request();
final bool isGranted = await permissionStatus(statuses.keys.toList());
return isGranted;
}
@ -241,7 +255,7 @@ class PermissionDialog {
bool application = true;
const Permission permission = Permission.storage;
final List<Permission> permissions = requestPermission();
final dynamic cache = await Storage.getString(titles[permission]??'');
final dynamic cache = await Storage.getString(titles[permission] ?? '');
final bool isGranted = await permissionStatus(permissions);
if (AppPlatform.isAndroid && !isGranted && cache is! String) {
application = await showCupertinoDialog(
@ -270,7 +284,7 @@ class PermissionDialog {
},
);
if (application) {
await Storage.setString(titles[permission]??'', titles[permission]);
await Storage.setString(titles[permission] ?? '', titles[permission]);
}
} else if (cache is String) {
final bool isDenied = !(await permissionStatus(permissions));
@ -280,7 +294,8 @@ class PermissionDialog {
}
}
if (application) {
final Map<Permission, PermissionStatus> statuses = await permissions.request();
final Map<Permission, PermissionStatus> statuses =
await permissions.request();
final bool isGranted = await permissionStatus(statuses.keys.toList());
return isGranted;
}
@ -295,7 +310,7 @@ class PermissionDialog {
}
bool application = true;
final PermissionStatus status = await permission.status;
final dynamic cache = await Storage.getString(titles[permission]??'');
final dynamic cache = await Storage.getString(titles[permission] ?? '');
if (AppPlatform.isAndroid && !status.isGranted && cache is! String) {
application = await showCupertinoDialog(
context: Get.context!,
@ -309,14 +324,22 @@ class PermissionDialog {
CupertinoDialogAction(
child: Text('不允许'.tr),
onPressed: () {
BuglyTool.uploadExceptionWithEvent(eventStr: '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', detail: "不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'");
BuglyTool.uploadExceptionWithEvent(
eventStr:
'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}',
detail:
"不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'");
Get.back(result: false);
},
),
CupertinoDialogAction(
child: Text('允许'.tr),
onPressed: () {
BuglyTool.uploadExceptionWithEvent(eventStr: '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', detail: "允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'");
BuglyTool.uploadExceptionWithEvent(
eventStr:
'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}',
detail:
"允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'");
Get.back(result: true);
},
),
@ -325,7 +348,7 @@ class PermissionDialog {
},
);
if (application) {
await Storage.setString(titles[permission]??'', titles[permission]);
await Storage.setString(titles[permission] ?? '', titles[permission]);
}
} else if (cache is String) {
if (status.isDenied) {