ATPermission
介绍
ATPermission 是 PermissionScope 的 Objective-C 版本,感谢 nickoneill 大神的无私奉献!
支持的权限
- 通知
- 位置(使用中,始终开启)
- 通讯录
- 事件
- 麦克风
- 相机
- 照片
- 提醒事项
- 蓝牙
- 运动
支持英文和简体中文
示例
#import "ATPermission.h"
self.singlePermission = [ATPermission new];
self.multiPermission = [ATPermission new];
self.noUIPermission = [ATPermission new];
[self.singlePermission addPermission:[[ATNotificationsPermission alloc] initWithNotificationCategories:nil]
message:@"We use this to send you\r\nspam and love notes"];
[self.multiPermission addPermission:[[ATContactsPermission alloc] init]
message:@"We use this to steal\r\nyour friends"];
[self.multiPermission addPermission:[[ATNotificationsPermission alloc] initWithNotificationCategories:nil]
message:@"We use this to send you\r\nspam and love notes"];
[self.multiPermission addPermission:[[ATLocationWhileInUsePermission alloc] init]
message:@"We use this to track\r\nwhere you live"];
[self.noUIPermission addPermission:[[ATNotificationsPermission alloc] initWithNotificationCategories:nil] message:@"notifications"];
[self.noUIPermission addPermission:[ATMicrophonePermission new] message:@"microphone"];
- (void)singlePermissionAction:(UIButton *)sender {
[self.singlePermission show:^(BOOL finished, NSArray<ATPermissionResult *> * _Nonnull results) {
NSLog(@"Changed: %@ - %@", @(finished), results);
} cancelled:^(NSArray<ATPermissionResult *> * _Nonnull results) {
NSLog(@"Cancelled");
}];
}
- (void)multiPermissionAction:(UIButton *)sender {
[self.multiPermission show:^(BOOL finished, NSArray<ATPermissionResult *> * _Nonnull results) {
NSLog(@"Changed: %@ - %@", @(finished), results);
} cancelled:^(NSArray<ATPermissionResult *> * _Nonnull results) {
NSLog(@"Cancelled");
}];
}
- (void)noUIPermissionAction:(UIButton *)sender {
[self.noUIPermission requestNotifications];
}
- (void)statusContactsPermissionAction:(UIButton *)sender {
ATPermission *p = [ATPermission new];
//p.viewControllerForAlerts = self;
ATPermissionStatus status = [p statusContacts];
if (status != kATPermissionStatusAuthorized) {
[p requestContacts];
}
ATPermissionResult *result = ATPermissionResultMake(kATPermissionTypeContacts, status);
[sender setTitle:result.description forState:UIControlStateNormal];
}
要求
安装
ATPermission 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中
pod 'ATPermission'
作者
[email protected],[email protected]
许可协议
ATPermission可以在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。