feat:修复IOS点击头像选择相册时出现的异常
This commit is contained in:
parent
e6b6672ceb
commit
e276672507
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user