网站对不同分辨率,柳州本地做网站的公司,郑州网站设计收费,榆次住房和城乡建设局网站文章目录 概念介绍使用方法示例代码经验分享 我们在上一章回中介绍了局部动态列表相关的内容#xff0c;本章回中将介绍权限管理包
permission_hanadler.闲话休提#xff0c;让我们一起Talk Flutter吧。 概念介绍
权限是使用某种功能的授权#xff0c;比如使用手机上的相机… 文章目录 概念介绍使用方法示例代码经验分享 我们在上一章回中介绍了局部动态列表相关的内容本章回中将介绍权限管理包
permission_hanadler.闲话休提让我们一起Talk Flutter吧。 概念介绍
权限是使用某种功能的授权比如使用手机上的相机就是获取相机相关的权限。
在移动开发中不论是Android还是IOS都需要进行权限管理Flutter是跨平台的开发框架因此也需要权限管理我们推荐使用permission_handler这个三方包来管理权限。该包提供了许多方法方法我们申请权限当然了还需要使用原生的配置才能完成权限管理。本章回中将详细介绍如何使用该包来实现权限管理。
使用方法
在yaml文件中导入permission_handler包并且获取到本地项目中使用Android和IOS原生开发中的方法在权限配置文件配置需要管理的权限通过包中Permission类的status属性获取权限当前的状态然后依据不同的状态做相应的操作如果没有获取到需要的权限。那么使用包中的request()方法去申请权限request()方法返回Future对象可以在申请完权限后查看权限的状态或者打开某些开关比如位置开关
示例代码 void checkPermission() async {var status await Permission.bluetooth.status;if(status.isDenied) {requestPermission();}}void requestPermission() async {MapPermission,PermissionStatus permissionMap await [Permission.locationAlways,Permission.bluetoothScan,Permission.bluetoothConnect,].request();debugPrint(permission state: ${permissionMap[Permission.location]});}在上面的代码中把查看权限状态和申请权限都封装成了独立的方法这样方便项目使用。代码是以蓝牙和位置权限为例子的大家可以试试其它的权限。
此外这里没有列出原生配置文件中配置权限
Android在manifest.xlm文件配置IOS在info.plist文件中配置。
经验分享
权限管理是一个非常烦人的操作而且不同的系统版本对权限管理有不同的要求IOS相对好一些android的版本碎片化严重需要适配不同的系统版本。
Flutter没有专门的权限配置文件因此权限管理还是使用原生开发方式中的配置文件开发者需要在原生配置文件中做权限配置然后再使用文章中介绍的三方包申请权限和查看权限状态。
我的经验是如果想掌握好权限管理相关的知识必须要掌握原生开发中的权限管理然后再配合permission_handler包来申请权限。注意一下Android的配置文件分布在三个目录中:debug,release,profile。它们分别对应不同的软件版本最好让这三个目录下的配置文件保持一致。
最后再来一个总结权限管理的配置仍然在原生配置文件中三方包只是帮助我们写了申请和查看权限状态的代码原生开发需要两份不同的代码现在变成了一份相同的代码。
看官们与权限管理包permission_handler相关的内容就介绍到这里欢迎大家在评论区交流与讨论!