我正在使用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>
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());
flutter:isGranted:false被拒绝:false isLimited:false isRestricted:false是永久拒绝的:真的
我试图在模拟器(iPhone 12Pro Max)上卸载并重新安装应用程序,但仍然无法请求权限(显示请求弹出)。
我尝试了this、this、this和this。但问题依然存在
3条答案
按热度按时间4bbkushb1#
首先将下面的代码复制并粘贴到你的podfile中。然后设置
'PERMISSION_PHOTOS=1'
,如果你不想使用另一个权限,你可以删除或设置它=0(exp'PERMISSION_CAMERA=0'
,)。然后将其添加到info.plist文件中
最后,在项目中使用permission_handler插件,并在需要请求权限的地方添加此代码。
cbjzeqam2#
使用最新的
permission_handler:
包。将照片权限添加到Info.plist
文件。将以下内容添加到Podfile文件中:
如果需要添加更多权限,请单击此处。删除要使用的权限前面的#字符。例如
在flutter中,请求var status = await Permission.photos.request(); if(status.isDenied){ //我们还没有请求权限,或者权限已经被拒绝,但不是永久性的。}
最后清洁和重建
7vux5j2d3#
权限包在iOS上的行为已更改为默认拒绝所有权限。您必须更新PList并打开希望在应用程序中使用的权限,才能使其工作。