Browse Source

fix(权限视图): 仅在Android平台显示通讯权限组,避免iOS平台显示不支持的权限

weicu
lxm 1 year ago
parent
commit
41cbd583ba
  1. 27
      lib/modules/settings/views/permissions_view.dart

27
lib/modules/settings/views/permissions_view.dart

@ -4,6 +4,8 @@ import 'package:permission_handler/permission_handler.dart';
import '../controllers/settings_controller.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'dart:ui';
import 'dart:io' show Platform;
import '../../../core/utils/permission_util.dart'; // 引入PermissionUtil
class PermissionsView extends GetView<SettingsController> {
@ -37,7 +39,7 @@ class PermissionsView extends GetView<SettingsController> {
centerTitle: true,
),
body: FutureBuilder<Map<Permission, PermissionStatus>>(
future: controller.checkAllPermissions(),
future: controller.checkAllPermissions(), //检查权限当前状态
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator());
@ -45,8 +47,8 @@ class PermissionsView extends GetView<SettingsController> {
if (snapshot.hasError) {
return Center(
child: Text('getPermissionStatusFailed'.tr +
': ${snapshot.error}')); // 获取权限状态失败
child: Text(
'${'getPermissionStatusFailed'.tr}: ${snapshot.error}')); // 获取权限状态失败
}
final permissionStatuses = snapshot.data ?? {};
@ -54,15 +56,16 @@ class PermissionsView extends GetView<SettingsController> {
return ListView(
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
children: [
// 通讯权限组
_buildPermissionSection(
'communicationPermissions'.tr, // 通讯权限
Icons.phone_android,
[Permission.phone, Permission.sms],
permissionStatuses,
isDarkMode),
SizedBox(height: 20.h),
// 通讯权限组- iOS平台没有通讯权限
if (Platform.isAndroid) ...[
_buildPermissionSection(
'communicationPermissions'.tr, // 通讯权限
Icons.phone_android,
[Permission.phone, Permission.sms],
permissionStatuses,
isDarkMode),
SizedBox(height: 20.h),
],
// 日历权限组
_buildPermissionSection(

Loading…
Cancel
Save