我是靠谱客的博主 大力期待,最近开发中收集的这篇文章主要介绍Flutter 使用permission_handler 申请权限,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近Flutter项目中需要使用到高德定位,需要申请定位权限,在这里使用到了permission_handler 。遇到了一些问题记录一下(以定位权限为例)。

  1. 获取插件
     在 pubspec.yaml 文件配置
    dependencies:
      permission_handler: ^8.2.5
    permission_handler | Flutter Package
  2. 配置权限信息
    在Info.plist 文件配置
    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    	<string>运单打卡需要获取您的位置信息</string>
    	<key>NSLocationAlwaysUsageDescription</key>
    	<string>运单打卡需要获取您的位置信息</string>
    	<key>NSLocationUsageDescription</key>
    	<string>运单打卡需要获取您的位置信息</string>
    	<key>NSLocationWhenInUseUsageDescription</key>
    	<string>运单打卡需要获取您的位置信息</string>

    在Podfile文件配置(这一点要注意)
     

    
    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
              # for more infomation: https://github.com/BaseflowIT/flutter-permission-handler/blob/master/permission_handler/ios/Classes/PermissionHandlerEnums.h
              # e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0'
              config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
                '$(inherited)',
    
                ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
                'PERMISSION_LOCATION=1',
    
              ]
    
            end
      end
    end
  3. 调用申请权限
     

    
      /// 动态申请定位权限
      void requestPermission() async {
        // 申请权限
        bool hasLocationPermission = await requestLocationPermission();
        if (hasLocationPermission) {
          // 权限申请通过
        } else {
    
        }
      }
    
    
      /// 申请定位权限
      /// 授予定位权限返回true, 否则返回false
      Future<bool> requestLocationPermission() async {
        //获取当前的权限
        var status = await Permission.location.status;
        if (status == PermissionStatus.granted) {
          //已经授权
          return true;
        } else {
          //未授权则发起一次申请
          status = await Permission.location.request();
          if (status == PermissionStatus.granted) {
            return true;
          } else {
            return false;
          }
        }
      }
    

    4. 成功调起申请权限

最后

以上就是大力期待为你收集整理的Flutter 使用permission_handler 申请权限的全部内容,希望文章能够帮你解决Flutter 使用permission_handler 申请权限所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部