当前位置: 首页 > news >正文

免费网站域名空间免费网站模板建站

免费网站域名空间,免费网站模板建站,南山电商网站建设,wordpress短消息文章目录 1. 介绍2. 环境准备2-1. Android2-2. iOS 3. 使用 1. 介绍 在大多数操作系统上,权限不是在安装时才授予应用程序的。相反,开发人员必须在应用程序运行时请求用户的许可。在 flutter 开发中,则需要一个跨平台(iOS, Android)的 API 来…

文章目录

  • 1. 介绍
  • 2. 环境准备
    • 2-1. Android
    • 2-2. iOS
  • 3. 使用

1. 介绍

在大多数操作系统上,权限不是在安装时才授予应用程序的。相反,开发人员必须在应用程序运行时请求用户的许可。在 flutter 开发中,则需要一个跨平台(iOS, Android)的 API 来请求权限和检查他们的状态,这时候就需要使用 flutter 插件permission_handler来帮忙了。它允许您请求和检查权限。你还可以打开设备的应用程序设置,以便用户授予权限。

2. 环境准备

项目更目录打开运行窗口,安装插件:

flutter pub add permission_handler

当在运行时请求权限时,你仍然需要告诉操作系统你的应用程序可能会使用哪些权限。这需要在 Android 和 ios 特定文件中添加权限配置。

2-1. Android

  1. 检查你的 android 目录下的 gradle.properties 文件,是否有下列代码:
android.useAndroidX=true
android.enableJetifier=true
  1. 检查你的 android/app 目录下的 build.gradle 文件,是否有下列代码:
android {compileSdkVersion 33# 省略代码……
}
  1. 添加需要的权限到 android/app/src/main 目录下 AndroidManifest.xml 文件
<manifest xmlns:android="http://schemas.android.com/apk/res/android"><!-- 网络权限 --><uses-permission android:name="android.permission.INTERNET" /><!-- 写权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 读权限 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /># 省略代码……
</manifest>

2-2. iOS

  1. 检查你的 ios 目录下的 podfile 文件,添加下列代码:
# 权限配置开始config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)',## 仅允许写入日历的权限(iOS 16 及以下)# 'PERMISSION_EVENTS=1',## 允许完全访问日历的权限(iOS 17及以上)# 'PERMISSION_EVENTS_FULL_ACCESS=1',## 提醒事项权限# 'PERMISSION_REMINDERS=1',## 联系人权限# 'PERMISSION_CONTACTS=1',## 相机权限# 'PERMISSION_CAMERA=1',## 麦克风权限# 'PERMISSION_MICROPHONE=1',## 语音识别权限# 'PERMISSION_SPEECH_RECOGNIZER=1',## 照片权限# 'PERMISSION_PHOTOS=1',## 位置权限组(包括始终、使用中)# 'PERMISSION_LOCATION=1',## 通知权限# 'PERMISSION_NOTIFICATIONS=1',## 媒体库权限# 'PERMISSION_MEDIA_LIBRARY=1',## 传感器权限# 'PERMISSION_SENSORS=1',## 蓝牙权限# 'PERMISSION_BLUETOOTH=1',## 应用跟踪透明度权限# 'PERMISSION_APP_TRACKING_TRANSPARENCY=1',## 关键警报权限# 'PERMISSION_CRITICAL_ALERTS=1']# 权限配置结束end
  1. 打开 ios/Runner 目录中的 Info.plist 文件,添加需要的权限
权限名Info.plist 的键指令 Macro
日历权限(< iOS 17)NSCalendarsUsageDescriptionPERMISSION_EVENTS
日历写权限(iOS 17+)NSCalendarsWriteOnlyAccessUsageDescriptionPERMISSION_EVENTS
日历完全访问权限(iOS 17+)NSCalendarsFullAccessUsageDescriptionPERMISSION_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-
<!-- 保存图片到相册 -->
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Please allow the APP to save photos to the album</string>

3. 使用

注意,获取存储权限的系统弹框只会出现一次,假如第一次不同意,下次再申请就需要自己写确认框引导用户打开 app 权限的页面:openAppSettings()。

import 'package:flutter/foundation.dart';
import 'package:permission_handler/permission_handler.dart';/// 获取存储权限
Future<bool> 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端在线音乐网站
  • vue3+element-plus配置cdn
  • 助你上手Vue3全家桶之Vue3教程
  • 助你上手Vue3全家桶之VueX4教程
  • 助你上手Vue3全家桶之Vue-Router4教程
  • 超详细!Vue的九种通信方式
  • 超详细!Vuex手把手教程
  • 使用nvm管理node.js版本以及更换npm淘宝镜像源
  • vue中利用.env文件存储全局环境变量,以及配置vue启动和打包命令
  • 超详细!Vue-Router手把手教程

个人主页

  • CSDN
  • GitHub
  • 简书
  • 博客园
  • 掘金
http://www.yayakq.cn/news/309647/

相关文章:

  • 张家港建设局门户网站综合信息网站建设方案
  • 聊城正规网站建设设计公司濮阳市平台公司
  • 网站建设需要学习哪些做外贸是网站好还是展会好
  • 网站在线报名怎么做分销小程序开发找哪家好
  • pc和移动端网站跳转网站怎么做充值系统下载
  • 网站内部链接的策略有电子商务网站开发软件
  • 昆明做网站哪家辽阳网站设计
  • 太仓公司网站建设电话盛泽做网站的
  • 曲周县建设局网站server2012做网站
  • 能自己做网站接业务吗天眼查企业查询入口
  • 平凉网站建设平凉wordpress怎么发外链
  • 广东平台网站建设制作php网站开发是做什么的
  • 网站开发工具设备要求湖北网
  • 怎么开网站详细步骤wordpress无法重定向
  • 阿里巴巴国际网站怎么做小影wordpress
  • 汽车销售网站建设山西建设执业注册管理中心网站
  • 做服装团购有哪些网站网站建设维护方案
  • 网站建设开发报价单网站维护工作计划
  • 北京网站建设1000zhu房地产基础知识
  • php网站模板使用昆明营销型网站制作设计
  • 加盟类网站怎么做怎么写自己的网页
  • 太原网站建设tygytc网站建设丿金手指下拉9
  • 网站建设的方案计划网站功能策划书
  • 在网站如何做在ps软件做界面建立企业网站流程
  • 网站设计建设公司排行注册公司的流程和步骤
  • 网站价格网页制作杭州网站改版公司电话
  • 福州专业建站seo全国最好的公司
  • 学做网站需要懂什么南京市住房与城乡建设局网站
  • 灵感设计网站帐号售卖网站建设
  • 抚松做网站求职简历模板免费下载