Awesome
RxPermission
RxSwift bindings for Permission API that helps you with Permissions in iOS.
Installation
RxPermission is available through CocoaPods. I can't guarantee it is working correctly on Carthage, so if you want to help I'm happy to introduce it with your PR.
RxPermission should work with every Swift release >= 2.2, for detailed instructions check info below.
Swift 3.0
If you want to use RxPermission with Swift 3.0 you have to specify which Permission you want to install/use because of new Apple policy about permission. For example if you want to access the Camera and the Notifications you define the following:
pod 'RxPermission/Camera'
pod 'RxPermission/Notifications'
Available specs:
pod 'RxPermission/AddressBook'
pod 'RxPermission/Bluetooth'
pod 'RxPermission/Camera'
pod 'RxPermission/Contacts'
pod 'RxPermission/Events'
pod 'RxPermission/Location'
pod 'RxPermission/MediaLibrary'
pod 'RxPermission/Microphone'
pod 'RxPermission/Motion'
pod 'RxPermission/Notifications'
pod 'RxPermission/Photos'
pod 'RxPermission/Reminders'
pod 'RxPermission/Siri'
pod 'RxPermission/SpeechRecognizer'
Below Swift 3.0
To install it, simply add the following line to your Podfile:
pod "RxPermission", "~> 0.2"
You need to also take care of Info.plist messages because otherwise Apple won't accept the app in App Store.
Usage
RxPermission makes a rx.permission
Observable that you can subscribe in order to receive signals.
Sample code
Permission
.contacts
.rx.permission
.subscribe(onNext: { status in
print("Status: \(status)")
})
.addDisposableTo(disposeBag)
Available permissions:
public enum PermissionType {
case addressBook
case bluetooth
case camera
case contacts
case events
case locationAlways
case locationWhenInUse
case mediaLibrary
case microphone
case motion
case notifications
case photos
case reminders
case siri
case speechRecognizer
}
Available statuses:
public enum PermissionStatus {
case authorized
case denied
case disabled
case notDetermined
}
For more info about permissions and statuses, please visit Permission's README.
Example
To run the example project, clone the repo, and run pod install
from the Example directory first.
Author
Sunshinejr, thesunshinejr@gmail.com, <a href="https://twitter.com/thesunshinejr">@thesunshinejr</a>
License
RxPermission is available under the MIT license. See the LICENSE file for more info.