# 桃夭 **Repository Path**: code-remote-repository/taoyao ## Basic Information - **Project Name**: 桃夭 - **Description**: 桃夭是鸿蒙系统上的一个权限请求框架,封装了权限请求逻辑,采用链式调用的方式请求权限,极大的简化了权限请求的代码。 - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 16 - **Created**: 2024-08-05 - **Last Updated**: 2024-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 桃夭 ## 申请权限的一般步骤 * 判断是否有权限,如果有权限,直接进行下一步。 * 如果没有权限,则开始申请权限。 * 如果用户授权,进行下一步。 * 如果用户拒绝授权,后面再次申请权限,系统为了不打扰用户,将不会出现系统的权限弹窗。在用户拒绝授权后,需要弹窗提示用户必须授权才能访问当前功能,并引导用户到系统设置中打开相应的权限。
每次申请权限的时候,都需要经过以上几个步骤,当申请的权限越来越多,大量的重复代码就出现了。为了减少重复代码,我封装了一个权限请求框架。
## 权限请求框架 **桃夭**是鸿蒙系统上的一款权限请求框架,封装了权限请求逻辑,采用**链式调用**的方式请求权限,极大的简化了权限请求的代码,同时支持在`UI`、`UIAbility`、`UIExtensionAbility`里面申请权限。需要注意的是,应用在`UIExtensionAbility`申请授权时,需要在`onWindowStageCreate`函数执行结束后或在`onWindowStageCreate`函数回调中申请权限。本项目基于开源鸿蒙4.1开发,最低兼容到API 11,请将DevEco Studio升级到最新版,DevEco Studio版本低于5.0.3.403可能无法编译。
 ## 桃夭名称来源 桃夭一词出自古代第一部诗歌总集《诗经》中《诗经·桃夭》,“桃之夭夭,灼灼其华。”桃花怒放千万朵,色彩鲜艳红似火。 ## 下载安装 ``` ohpm install @shijing/taoyao ``` ## 申请权限 ``` TaoYao.with(this) .runtime() // 要申请的权限 .permission(permissions) .onGranted(() => { // 权限申请成功 }) .onDenied(() => { // 权限申请失败 }) .request() ``` **申请权限变得如此之简单。** ## 其它功能 提供跳转到系统设置的方法 ``` /** * 跳转到系统设置页面 * * @param context */ static goToSettingPage(context: common.UIAbilityContext) { TaoYao.with(context).setting().goToSettingPage() } ``` 有的时候仅仅只需判断是否有权限,并不申请权限。 ``` /** * 仅仅检测是否有权限,如果没有权限,不会申请权限 * * @param permissions * @returns true 有权限 */ static hasPermission(permissions: Array