美文网首页Flutter学习
flutter permission_handler调用iOS相

flutter permission_handler调用iOS相

作者: 微风_10a5 | 来源:发表于2022-07-19 12:06 被阅读0次

    前言

    相信移动端开发的人员,是无法避开申请权限的问题;在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相

        本文链接:https://www.haomeiwen.com/subject/rhwjirtx.html