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 次 |
| 最近记录: |