2 Star 33 Fork 8

裴云飞/桃夭

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README
Apache-2.0

桃夭

申请权限的一般步骤

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

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

权限请求框架

桃夭是鸿蒙系统上的一款权限请求框架,封装了权限请求逻辑,采用链式调用的方式请求权限,极大的简化了权限请求的代码,同时支持在UIUIAbilityUIExtensionAbility里面申请权限。需要注意的是,应用在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<Permissions>): boolean {
    const generalChecker = new GeneralChecker()
    return generalChecker.hasPermission(permissions)
  }

实现原理

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

Copyright [2024] [裴云飞] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

桃夭是鸿蒙系统上的一个权限请求框架,封装了权限请求逻辑,采用链式调用的方式请求权限,极大的简化了权限请求的代码。 expand collapse
TypeScript
Apache-2.0
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
TypeScript
1
https://gitee.com/zhongte/taoyao.git
git@gitee.com:zhongte/taoyao.git
zhongte
taoyao
桃夭
master

Search