flutter ios照片权限总是返回权限永久被拒绝

Mar*_*sad 4 permissions permission-denied ios flutter ios-permissions

我正在使用 flutter 为 iOS 和 Android 创建应用程序。我需要iOS 和 Android 的photos权限storage来访问照片以更新用户个人资料图片。我使用该permission_handler包来请求权限。这在 Android 中运行良好,但在 iOS 中则不然。

<key>NSPhotoLibraryUsageDescription</key>
<string>We need Photos access to allow you to update Profile Picture.</string>
Run Code Online (Sandbox Code Playgroud)
var permission = Platform.isAndroid
        ? Permission.storage
        : Permission.photos;

var permissionStatus = await permission.request();

print("isGranted: " +
        permissionStatus.isGranted.toString() +
        " isDenied: " +
        permissionStatus.isDenied.toString() +
        " isLimited: " +
        permissionStatus.isLimited.toString() +
        " isRestricted: " +
        permissionStatus.isRestricted.toString() +
        " isPermanentlyDenied: " +
        permissionStatus.isPermanentlyDenied.toString());
Run Code Online (Sandbox Code Playgroud)

颤振: isGranted: false isDenied: false isLimited: false isRestricted: false isPermanentlyDenied: true

我尝试在模拟器(iPhone 12pro max)上卸载并重新安装该应用程序,但仍然无法请求权限(显示请求弹出窗口)。

我试过这个这个这个这个。但问题仍然存在。

小智 6

首先将以下代码复制并粘贴到您的 podfile 中。然后设置'PERMISSION_PHOTOS=1',如果不想使用其他权限可以删除或设置为 =0 (exp 'PERMISSION_CAMERA=0', )。

post_install do |installer|
   installer.pods_project.targets.each do |target|
     flutter_additional_ios_build_settings(target)
     target.build_configurations.each do |config|
           # You can remove unused permissions here
           # e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0'
           config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
                '$(inherited)',
                ## dart: PermissionGroup.calendar
    
                ## dart: PermissionGroup.reminders
    
                ## dart: PermissionGroup.contacts
    
                ## dart: PermissionGroup.camera
                'PERMISSION_CAMERA=1',
                ## dart: PermissionGroup.microphone
                'PERMISSION_MICROPHONE=1',
                ## dart: PermissionGroup.speech
                'PERMISSION_SPEECH_RECOGNIZER=1',
                ## dart: PermissionGroup.photos
                'PERMISSION_PHOTOS=1',
                ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
    
                ## dart: PermissionGroup.notification
    
                ## dart: PermissionGroup.mediaLibrary
                'PERMISSION_MEDIA_LIBRARY=1',
                ## dart: PermissionGroup.sensors
    
                ## dart: PermissionGroup.bluetooth
    
                ## dart: PermissionGroup.appTrackingTransparency
                'PERMISSION_APP_TRACKING_TRANSPARENCY=1',
                ## dart: PermissionGroup.criticalAlerts
                'PERMISSION_SENSORS=1'
          ]
       end
   end
end

Run Code Online (Sandbox Code Playgroud)

然后将其添加到 info.plist 文件中

<key>NSPhotoLibraryUsageDescription</key>
<string>We need Photos access to allow you to update Profile Picture.</string>
Run Code Online (Sandbox Code Playgroud)

最后,在您的项目中使用permission_handler插件,并在您想要请求权限的地方添​​加此代码。

var permissionStatus = await permission.request();
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

10884 次

最近记录:

2 年,9 月 前