ATPermission 0.1.8

ATPermission 0.1.8

ablettx 维护。



 
依赖
ATAlert>= 0
ATCategories>= 0
 

ATPermission

CI Status Version License Platform

介绍

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文件。