美文网首页kotlin
Kotlin DSL的运行时权限

Kotlin DSL的运行时权限

作者: 开心人开发世界 | 来源:发表于2019-10-08 10:08 被阅读0次

前一段时间,我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。在拉姆达,初始化的两个成员PermissionRequestrequestCoderesultCallback

这是PermissionRequest类的定义。

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

这是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

相关文章

网友评论

    本文标题:Kotlin DSL的运行时权限

    本文链接:https://www.haomeiwen.com/subject/rtnvpctx.html