玖叶教程网

前端编程开发入门

Kotlin DSL的运行时权限(kotlin命令行)



前一段时间,我eazypermissions为运行时权限开源了一个Android库,该库允许您在协程中请求权限(没有回调yay),并且还支持LiveData。如果您有兴趣,可以阅读更多内容

eazy permissions 运行时权限库简介。

proandroiddev.com

该库现在提供了Kotlin DSL来请求权限。在本文中,我们将讨论DSL API以及如何使用DSL请求权限。让我们开始吧。

Kotlin DSL请求权限

请求权限时,重要的三件事是权限,请求代码和结果。DSL API专注于这三件事,并允许您简洁明了地请求权限。让我们看看如何。

如果要在“Activity/Fragment”中请求权限,则可以请求权限,如下所示。



现在让我们了解上面的DSL。

该requestPermissions函数是Activity和Fragment的扩展函数,因此您可以直接从activity和fragment调用它。它需要vararg您要请求的许可权,并在接收器上启用lambda PermissionRequest。由于它是带有接收器的lambda,因此PermissionRequest您可以直接访问的成员PermissionRequest。在拉姆达,初始化的两个成员PermissionRequest,requestCode和resultCallback。

这是PermissionRequest类的定义。



resultCallback带有接收器的lambda,PermissionResult并且库将调用此回调以获得结果。在lambda中,您可以直接将权限结果称为this。PermissionResult只是封装所有可能结果的简单密封类,即授予,拒绝,永久拒绝和显示理性的权限。

这是requestPermissionsActivity和Fragment上扩展功能的签名。



如果您在“Fragment/Activity”之外请求权限,则可以请求权限,如下所示。



唯一的区别是您需要调用PermissionManager.requestPermissionsFragment / Activity实例作为附加参数。我们之前看到的扩展函数在内部将调用委托给该函数。

这是PermissionManager.requestPermissions功能的签名。



您如何在项目中包含库。

implementation 'com.sagar:dslpermission:2.0.0'

这就是Kotlin DSL新功能的全部内容。请转到下面的GitHub存储库,以获取有关该库的更多详细信息。

一个轻量级的Android库,它包装了运行时权限的样板代码,并允许您请求权限…

github.com

https://github.com/sagar-viradiya/eazypermissions?source=post_page-----ba04dbe0de2c----------------------

翻译自:https://android.jlelse.eu/kotlin-dsl-for-runtime-permissions-ba04dbe0de2c

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言