avatar

flutter/动态权限请求

flutter动态权限请求

使用permisstion_handle
使用方式:
static Future requestCamera() async {
if (await Permission.camera.request().isGranted) {
return true;
} else {
return false;
}
}
在ios端无法唤醒系统的权限请求弹窗。原因是没有配置权限文件。

IOS 端:

在ios文件夹下PodFile 加入如下内容:

post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|

  # e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=1'
  config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
    '$(inherited)',

    ## dart: PermissionGroup.calendar
    'PERMISSION_EVENTS=0',

    ## dart: PermissionGroup.reminders
    'PERMISSION_REMINDERS=0',

    ## dart: PermissionGroup.contacts
    'PERMISSION_CONTACTS=0',

    ## dart: PermissionGroup.camera
    'PERMISSION_CAMERA=1',

    ## dart: PermissionGroup.microphone
    'PERMISSION_MICROPHONE=1',

    ## dart: PermissionGroup.speech
    'PERMISSION_SPEECH_RECOGNIZER=0',

    ## dart: PermissionGroup.photos
    'PERMISSION_PHOTOS=0',

    ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
     'PERMISSION_LOCATION=0',

    ## dart: PermissionGroup.notification
    'PERMISSION_NOTIFICATIONS=0',

    ## dart: PermissionGroup.mediaLibrary
    'PERMISSION_MEDIA_LIBRARY=0',

    ## dart: PermissionGroup.sensors
    'PERMISSION_SENSORS=0'
  ]
end

end
end
然后在info.plist中加入

1
2
3
<key>NSCameraUsageDescription</key>
#申请摄像头的原因
<string>camera</string>

示例:
需要申请摄像头。在下面

1
2
## dart: PermissionGroup.camera
'PERMISSION_CAMERA=1',

然后在info.plist中加入

1
2
<key>NSCameraUsageDescription</key>
<string>camera</string>
文章作者: 小黑
文章链接: http://ynxh.xyz/2023/01/17/flutter/动态权限请求/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小黑的小站
打赏
  • 微信
    微信
  • 支付寶
    支付寶
2