flutter permission_handler调用iOS相机相册请求权限问题

前言

相信移动端开发的人员,是无法避开申请权限的问题;在flutter中也是会遇到此问题,还好已经有一个很好的第三方库可以使用
permission_handler,是专门用来处理权限的,

flutter 使用permission_handler调用iOS相机相册权限,好像没有效果,不会弹出申请权限的弹框出来,今天我们就来填坑

最终效果

camera.gif

第一步:iOS原生工程申请权限

打用XCode打开iOS原生工程,找到info.plist文件,在里面填加key value,如下


image.png
第二步:在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
image.png
第四步:需要重新Pod install

pod成功后,再去运行代码 ,没有意外的话,就成功调用起相机,相册等

结尾

今天flutter 相关技术的分享就到这里喽,小伴们,觉得有点用的话,或者已经看到这里面来的请点个赞吧~~ 后续分享更多有关flutter的文章。如果有疑问的话,请在下方留言~

你可能感兴趣的:(flutter permission_handler调用iOS相机相册请求权限问题)