iOS:权限管理框架

image

说明

  • 请求从未询问的权限会弹出系统的权限窗口
  • 请求用户曾经拒绝的权限会展示弹窗提示用户,用户选择同意则跳入系统设置由用户手动打开此权限

效果

image

Carthage

cartfile添加

github "SoolyChristy/PermissionDirector"

Swift Package Manager

两种方式

  • package.swift添加
dependencies: [
    .package(url: "https://github.com/SoolyChristy/PermissionDirector.git", from: "0.0.4")
]
  • 在Xcode11中的PROJECT - Swift Packages 添加

使用

if !PermissionDirector.isAuthorized(for: .camera) {
  PermissionDirector.requestAuthorization(for: .camera) { (result) in
    if result == .authorized {
      print("camera permission has been authorized")
    }
  }
}

自定义弹窗

  • 自定义UIView实现PermissionAlertProtocol协议
public protocol PermissionAlertProtocol: class {
  /// 提供弹窗实例
  ///
  /// - Parameter type: 权限类型
  /// - Returns: 弹窗实例
  init(type: PermissionType)

  /// 展示弹窗
  func show()
  }
class PermissionHudView: UIView, PermissionAlertProtocol {
  required init(type: PermissionType) {
    super.init(frame: CGRect())
    // 你的实现
  }

  func show() {
    // 你的实现
  }
}
  • 更改弹窗类型
PermissionDirector.alertType = PermissionHudView.self

Github

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 先抛个砖:北极熊极凶勿凶北极熊。有玉的快快拿出来!
    桐欣儿阅读 295评论 5 1
  • 生活就是一桶木头屑
    小花花x阅读 157评论 0 0
  • 车斗装满亲友的叮咛 却装不下我潮湿的心情 车轮碾过深秋的泥泞 泥泞涂写着我曲折坎的人生 多想再听听那串串憨厚的笑声...
    远飞的大雁阅读 698评论 6 8