All Projects → SoolyChristy → PermissionDirector

SoolyChristy / PermissionDirector

Licence: MIT license
a iOS permission manager writtern by Swift

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to PermissionDirector

lui-auth
一个使用简单的安全防护、权限验证、身份验证工具,无复杂配置,只需依赖jar并简单配置即可使用,目前拥有功能:角色、菜单、权限集成管理,IP限流,内部服务双向验证、自动打印请求日志等
Stars: ✭ 18 (-37.93%)
Mutual labels:  permission
SwiftFCXRefresh
Pull to refresh in Swift.
Stars: ✭ 29 (+0%)
Mutual labels:  swift-package-manager
izzyparser-ios
IzzyParser is an iOS library for serializing and deserializing JSON:API objects
Stars: ✭ 19 (-34.48%)
Mutual labels:  swift-package-manager
silly-android
Android plugins for Java, making core Android APIs easy to use
Stars: ✭ 40 (+37.93%)
Mutual labels:  permission
sqlalchemy-adapter
SQLAlchemy Adapter for PyCasbin
Stars: ✭ 53 (+82.76%)
Mutual labels:  permission
Caterpillar
🐛 Caterpillar: Type-safe date formats in Swift, no more "yyyy-MM-dd'T'HH:mm:ssZ"
Stars: ✭ 49 (+68.97%)
Mutual labels:  swift-package-manager
BJOTPViewController
Entering OTP made simpler.
Stars: ✭ 42 (+44.83%)
Mutual labels:  swift-package-manager
Networking
Low-level Swift package for POSIX sockets and Epoll/Kqueue.
Stars: ✭ 21 (-27.59%)
Mutual labels:  swift-package-manager
ConsoleUI
Rasterize SwiftUI views to images from macOS terminal
Stars: ✭ 52 (+79.31%)
Mutual labels:  swift-package-manager
swift-html
An awesome Swift HTML DSL library using result builders.
Stars: ✭ 187 (+544.83%)
Mutual labels:  swift-package-manager
SwiftNES
Cross-platform NES Emulator written in Swift
Stars: ✭ 29 (+0%)
Mutual labels:  swift-package-manager
WXKDarkSky
A pure-Swift Codable layer over the Dark Sky API.
Stars: ✭ 21 (-27.59%)
Mutual labels:  swift-package-manager
Acl
The Hoa\Acl library.
Stars: ✭ 27 (-6.9%)
Mutual labels:  permission
vue-admin-work
🎉🎉🚀🚀🚀🚀vue-admin-work是一个中后台系统管理方案。使用 vue2.x 及周边全家桶工具开发而来。支持多种功能,不同角色权限🚀🚀🚀🎉🎉
Stars: ✭ 74 (+155.17%)
Mutual labels:  permission
MMActionSheet
An actionSheet view implement with pure swift
Stars: ✭ 25 (-13.79%)
Mutual labels:  swift-package-manager
swift-package-manager-ios
Example of how to use SPM v4 to manage iOS dependencies
Stars: ✭ 136 (+368.97%)
Mutual labels:  swift-package-manager
sqlx-adapter
Asynchronous casbin adapter for mysql, postgres, sqlite based on sqlx-rs
Stars: ✭ 27 (-6.9%)
Mutual labels:  permission
core-data-model-description
Declarative way to describe a Core Data model in code.
Stars: ✭ 60 (+106.9%)
Mutual labels:  swift-package-manager
Sensor
A fresh look at iOS development
Stars: ✭ 37 (+27.59%)
Mutual labels:  swift-package-manager
PermissionAgent
一次初始化处处可用的链式编程动态权限请求库
Stars: ✭ 21 (-27.59%)
Mutual labels:  permission

说明

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

效果

Cocoapods

podfile添加

pod 'PermissionDirector'

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].