成都网站建设推来客网站系统,utc+wordpress,androidapp开发教程,wordpress 做公司网站文章目录 1. 介绍2. 环境准备2-1. Android2-2. iOS 3. 使用 1. 介绍 
在大多数操作系统上#xff0c;权限不是在安装时才授予应用程序的。相反#xff0c;开发人员必须在应用程序运行时请求用户的许可。在 flutter 开发中#xff0c;则需要一个跨平台(iOS, Android)的 API 来… 文章目录 1. 介绍2. 环境准备2-1. Android2-2. iOS 3. 使用 1. 介绍 
在大多数操作系统上权限不是在安装时才授予应用程序的。相反开发人员必须在应用程序运行时请求用户的许可。在 flutter 开发中则需要一个跨平台(iOS, Android)的 API 来请求权限和检查他们的状态这时候就需要使用 flutter 插件permission_handler来帮忙了。它允许您请求和检查权限。你还可以打开设备的应用程序设置以便用户授予权限。 
2. 环境准备 
项目更目录打开运行窗口安装插件 
flutter pub add permission_handler当在运行时请求权限时你仍然需要告诉操作系统你的应用程序可能会使用哪些权限。这需要在 Android 和 ios 特定文件中添加权限配置。 
2-1. Android 
检查你的 android 目录下的 gradle.properties 文件是否有下列代码 
android.useAndroidXtrue
android.enableJetifiertrue检查你的 android/app 目录下的 build.gradle 文件是否有下列代码 
android {compileSdkVersion 33# 省略代码……
}添加需要的权限到 android/app/src/main 目录下 AndroidManifest.xml 文件 
manifest xmlns:androidhttp://schemas.android.com/apk/res/android!-- 网络权限 --uses-permission android:nameandroid.permission.INTERNET /!-- 写权限 --uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE /!-- 读权限 --uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE /# 省略代码……
/manifest2-2. iOS 
检查你的 ios 目录下的 podfile 文件添加下列代码 
# 权限配置开始config.build_settings[GCC_PREPROCESSOR_DEFINITIONS] || [$(inherited),## 仅允许写入日历的权限iOS 16 及以下# PERMISSION_EVENTS1,## 允许完全访问日历的权限iOS 17及以上# PERMISSION_EVENTS_FULL_ACCESS1,## 提醒事项权限# PERMISSION_REMINDERS1,## 联系人权限# PERMISSION_CONTACTS1,## 相机权限# PERMISSION_CAMERA1,## 麦克风权限# PERMISSION_MICROPHONE1,## 语音识别权限# PERMISSION_SPEECH_RECOGNIZER1,## 照片权限# PERMISSION_PHOTOS1,## 位置权限组包括始终、使用中# PERMISSION_LOCATION1,## 通知权限# PERMISSION_NOTIFICATIONS1,## 媒体库权限# PERMISSION_MEDIA_LIBRARY1,## 传感器权限# PERMISSION_SENSORS1,## 蓝牙权限# PERMISSION_BLUETOOTH1,## 应用跟踪透明度权限# PERMISSION_APP_TRACKING_TRANSPARENCY1,## 关键警报权限# PERMISSION_CRITICAL_ALERTS1]# 权限配置结束end打开 ios/Runner 目录中的 Info.plist 文件添加需要的权限 
权限名Info.plist 的键指令 Macro日历权限 iOS 17NSCalendarsUsageDescriptionPERMISSION_EVENTS日历写权限iOS 17NSCalendarsWriteOnlyAccessUsageDescriptionPERMISSION_EVENTS日历完全访问权限iOS 17NSCalendarsFullAccessUsageDescriptionPERMISSION_EVENTS_FULL_ACCESS提醒事项权限NSRemindersUsageDescriptionPERMISSION_REMINDERS联系人权限NSContactsUsageDescriptionPERMISSION_CONTACTS相机权限NSCameraUsageDescriptionPERMISSION_CAMERA相册权限NSPhotoLibraryAddUsageDescription-麦克风权限NSMicrophoneUsageDescriptionPERMISSION_MICROPHONE语音识别权限NSSpeechRecognitionUsageDescriptionPERMISSION_SPEECH_RECOGNIZER照片权限NSPhotoLibraryUsageDescriptionPERMISSION_PHOTOS位置权限NSLocationUsageDescription,PERMISSION_LOCATION始终使用位置权限NSLocationAlwaysAndWhenInUseUsageDescriptionPERMISSION_NOTIFICATIONS仅在使用时使用位置权限NSLocationWhenInUseUsageDescriptionPERMISSION_NOTIFICATIONS通知权限PermissionGroupNotificationPERMISSION_NOTIFICATIONS媒体库权限NSAppleMusicUsageDescription需要与一个字符串string配对使用-媒体库权限kTCCServiceMedia- 
!-- 保存图片到相册 --
keyNSPhotoLibraryAddUsageDescription/key
stringPlease allow the APP to save photos to the album/string3. 使用 
注意获取存储权限的系统弹框只会出现一次假如第一次不同意下次再申请就需要自己写确认框引导用户打开 app 权限的页面openAppSettings()。 
import package:flutter/foundation.dart;
import package:permission_handler/permission_handler.dart;/// 获取存储权限
Futurebool getStoragePermission() async {late PermissionStatus myPermission;/// 读取系统权限if (defaultTargetPlatform  TargetPlatform.iOS) {myPermission  await Permission.photosAddOnly.request();} else {myPermission  await Permission.storage.request();}if (myPermission ! PermissionStatus.granted) {return false;} else {return true;}
}void checkPermission() async {// 请求存储权限final permissionState  await getStoragePermission();if (permissionState) {// 权限被授予} else {// 权限被拒绝 打开手机上该App的权限设置页面openAppSettings();}
}结果如下图所示  本次分享就到这儿啦我是鹏多多如果您看了觉得有帮助欢迎评论关注点赞转发我们下次见~ 
往期文章 
flutter学习-day1-环境搭建和启动第一个项目flutter学习-day12-可滚动组件和监听Vue2全家桶Element搭建的PC端在线音乐网站vue3element-plus配置cdn助你上手Vue3全家桶之Vue3教程助你上手Vue3全家桶之VueX4教程助你上手Vue3全家桶之Vue-Router4教程超详细Vue的九种通信方式超详细Vuex手把手教程使用nvm管理node.js版本以及更换npm淘宝镜像源vue中利用.env文件存储全局环境变量以及配置vue启动和打包命令超详细Vue-Router手把手教程 
个人主页 
CSDNGitHub简书博客园掘金