1 Star 3 Fork 0

裴云飞 / 桃夭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

桃夭

申请权限的一般步骤

  • 判断是否有权限,如果有权限,直接进行下一步。
  • 如果没有权限,则开始申请权限。
  • 如果用户授权,进行下一步。
  • 如果用户拒绝授权,后面再次申请权限,系统为了不打扰用户,将不会出现系统的权限弹窗。在用户拒绝授权后,需要弹窗提示用户必须授权才能访问当前功能,并引导用户到系统设置中打开相应的权限。

    每次申请权限的时候,都需要经过以上几个步骤,当申请的权限越来越多,大量的重复代码就出现了。为了减少重复代码,我封装了一个权限请求框架。

权限请求框架

桃夭是鸿蒙系统上的一款权限请求框架,封装了权限请求逻辑,采用链式调用的方式请求权限,极大的简化了权限请求的代码,同时支持在UIUIAbilityUIExtensionAbility里面申请权限。需要注意的是,应用在UIExtensionAbility申请授权时,需要在onWindowStageCreate函数执行结束后或在onWindowStageCreate函数回调中申请权限。

本项目基于开源鸿蒙4.1开发,最低兼容到API 11,请将DevEco Studio升级到最新版,DevEco Studio版本低于4.1.3.700可能无法编译。

效果图

桃夭名称来源

桃夭一词出自古代第一部诗歌总集《诗经》中《诗经·桃夭》,“桃之夭夭,灼灼其华。”桃花怒放千万朵,色彩鲜艳红似火。

下载安装

ohpm install @shijing/taoyao

申请权限

TaoYao.with(this)
      .runtime()
      // 要申请的权限
      .permission(permissions)
      .onGranted(() => {
        // 权限申请成功
      })
      .onDenied(() => {
        // 权限申请失败
      })
      .request()

申请权限变得如此之简单。

其它功能

提供跳转到系统设置的方法

  /**
   * 跳转到系统设置页面
   *
   * @param context
   */
  static goToSettingPage(context: common.UIAbilityContext) {
    TaoYao.with(context).setting().gToSettingPage()
  }

有的时候仅仅只需判断是否有权限,并不申请权限。

 /**
   * 仅仅检测是否有权限,如果没有权限,不会申请权限
   *
   * @param permissions
   * @returns true 有权限
   */
  static hasPermission(permissions: Array<Permissions>): boolean {
    const generalChecker = new GeneralChecker()
    return generalChecker.hasPermission(permissions)
  }

实现原理

实现原理请查看实战鸿蒙,实现一款权限请求框架

源码

更多具体的代码,请下载源码

空文件

简介

桃夭是鸿蒙系统上的一个权限请求框架,封装了权限请求逻辑,采用链式调用的方式请求权限,极大的简化了权限请求的代码。 展开 收起
TypeScript 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
TypeScript
1
https://gitee.com/zhongte/taoyao.git
git@gitee.com:zhongte/taoyao.git
zhongte
taoyao
桃夭
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891