前言
相信移动端开发的人员,是无法避开申请权限的问题;在flutter中也是会遇到此问题,还好已经有一个很好的第三方库可以使用
permission_handler,是专门用来处理权限的,
flutter 使用permission_handler调用iOS相机相册权限,好像没有效果,不会弹出申请权限的弹框出来
,今天我们就来填坑
最终效果
第一步:iOS原生工程申请权限
打用XCode打开iOS原生工程,找到info.plist文件,在里面填加key value,如下
第二步:在flutter里面代码调用
if (await Permission.camera.request().isGranted) {
///如果相机权限申请成功,下面写接下来要做的处理
//do some thing...
} else {
///如果相机权限申请失败,下面给出提示
//OwonToast.show(S.of(context).permission_no_camera);
}
按正常理解完成上面的2步是可以正常使用,调起相机的权限申请,但实际真机iPhone上是没有任何效果
第三步:关键的一步(很多其他博主都写得不是很清楚)
打用XCode打开iOS原生工程,找到Podfile
文件,增加下面的代码才可以哦(权限的数量根据个人需要,去增减,下面只是参考)
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
## dart: PermissionGroup.camera
'PERMISSION_CAMERA=1',
# dart: PermissionGroup. photos
'PERMISSION_PHOTOS=1',
'PERMISSION_PHOTOS_ADD_ONLY=1',
# dart: [PermissionGroup. location, PermissionGroup. locationAlways, PermissionGroup. locationWhenInUse]
'PERMISSION_LOCATION=1',
# dart: PermissionGroup.mediaLibrary
'PERMISSION MEDIA LIBRARY=1'
]
end
第四步:需要重新Pod install
pod成功后,再去运行代码 ,没有意外的话,就成功调用起相机,相册等
结尾
今天flutter 相关技术的分享就到这里喽,小伴们,觉得有点用的话,或者已经看到这里面来的请点个赞吧~~ 后续分享更多有关flutter的文章。如果有疑问的话,请在下方留言~