An iOS pre-permissions utility that lets developers ask users on their own dialog for calendar, contacts, location, photos, reminders, twitter, push notifications and more, before making the system-based permission request.
iOS 8.0+
JLPermissions is available through CocoaPods, to install it simply add any or all of the following lines to your Podfile:
pod "JLPermissions/Calendar"
pod "JLPermissions/Camera"
pod "JLPermissions/Contacts"
pod "JLPermissions/Facebook"
pod "JLPermissions/Health"
pod "JLPermissions/Location"
pod "JLPermissions/Microphone"
pod "JLPermissions/Notification"
pod "JLPermissions/Photos"
pod "JLPermissions/Reminders"
pod "JLPermissions/Twitter"
Only add the pod for the permissions you plan on using. Apple rejects apps that include Healthkit API’s but do not use them.
To run the example project; clone the repo, and run pod install
, then open JLPermissionsExample.xcworkspace.
The method for asking for each type of permission (other than push notifications) is virtually identical. Here is an example of the API:
typedef NS_ENUM(NSInteger, JLAuthorizationStatus) {
JLPermissionNotDetermined = 0,
JLPermissionDenied,
JLPermissionAuthorized
};
typedef void (^AuthorizationHandler)(bool granted, NSError *error);
- (JLAuthorizationStatus)authorizationStatus;
- (void)authorize:(AuthorizationHandler)completion;
- (void)authorizeWithTitle:(NSString *)messageTitle
message:(NSString *)message
cancelTitle:(NSString *)cancelTitle
grantTitle:(NSString *)grantTitle
completion:(AuthorizationHandler)completion;
- (void)displayErrorDialog;
JLPermissions is available under the MIT license. See the LICENSE file for more info.