iOS:權限管理框架

說明

  • 請求從未詢問的權限會彈出系統的權限窗口
  • 請求用戶曾經拒絕的權限會展現彈窗提示用戶,用戶選擇贊成則跳入系統設置由用戶手動打開此權限

效果

Carthage

cartfile添加git

github "SoolyChristy/PermissionDirector"
複製代碼

Swift Package Manager

兩種方式github

  • 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
複製代碼

Githubswift

相關文章
相關標籤/搜索