APNPermissionRequest 0.1.5

APNPermissionRequest 0.1.5

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015 年 9 月

Tilo Westermann 维护。



APNPermissionRequest 允许您的用户在选择是否允许或拒绝推送通知时做出明智的决定。默认推送通知权限请求没有提供有关通知性质的信息,因此用户可能会因为没有把握而拒绝请求。使用 APNPermissionRequest,您可以添加 a) 附加的解释字符串到请求中,以及 b) 通知设置,使用户可以决定接收哪种形式的通知,而无需导航到系统设置应用。

使用方法

要运行示例项目,首先从仓库中克隆,然后从 Example 目录运行 pod install

带解释的权限请求

Permission request with explanation

APNPermissionRequest *request = [APNPermissionRequest sharedRequest];
[request showWithType: APNTypeAlert | APNTypeSound
                title:@"\"MyMailman\" Would Like to Send You Notifications."
              message:@"Your delivery is ready for pick-up at the post office? We'll inform you immediately via a push notification!"
      denyButtonTitle:@"Don't allow"
     grantButtonTitle:@"OK"
    completionHandler:^(BOOL hasPermission,
                        APNPermissionRequestDialogResult userDialogResult,
                        APNPermissionRequestDialogResult systemDialogResult) {
        NSLog(@"Permission: %d",hasPermission);

        NSArray *actions = @[@"no action",@"denied", @"granted"];
        NSLog(@"user action: %@",actions[userDialogResult]);
        NSLog(@"system action: %@",actions[systemDialogResult]);
        NSLog(@"Settings: %@",[APNPermissionRequest enabledTypeNames]);
    }];

带选项的权限请求

Permission request with notification settings

APNPermissionRequest *request = [APNPermissionRequest sharedRequest];
[request showWithType: APNTypeAlert | APNTypeSound
                  title:@"\"MyMailman\" Would Like to Send You Notifications."
                message:@"Your delivery is ready for pick-up at the post office? We'll inform you immediately via a push notification!"
         optionsTitle:@"Notification settings"
      denyButtonTitle:@"Don't allow"
     grantButtonTitle:@"OK"
    completionHandler:^(BOOL hasPermission,
                        APNPermissionRequestDialogResult userDialogResult,
                        APNPermissionRequestDialogResult systemDialogResult) {
        NSLog(@"Permission: %d",hasPermission);

        NSArray *actions = @[@"no action",@"denied", @"granted"];
        NSLog(@"user action: %@",actions[userDialogResult]);
        NSLog(@"system action: %@",actions[systemDialogResult]);
        NSLog(@"Settings: %@",[APNPermissionRequest enabledTypeNames]);
    }];

全屏权限请求

Fullscreen permission request

APNPermissionRequest *request = [APNPermissionRequest sharedRequest];
request.backgroundColor = [UIColor colorWithRed:236.0/255.0 green:240.0/255.0 blue:241.0/255.0 alpha:1];

NSMutableAttributedString *message = [[NSMutableAttributedString alloc] initWithString:@"Your delivery is ready for pick-up at the post office? We'll inform you immediately via a push notification!"];
[message addAttribute:NSFontAttributeName
                value:[UIFont italicSystemFontOfSize:14]
                range:[message rangeOfString:@"push notification"]];
[request showFullscreenWithType: APNTypeAlert | APNTypeSound
                          title:@"\"MyMailman\" Would Like to Send You Notifications."
                        message:message
                   optionsTitle:@"Notification settings"
                denyButtonTitle:@"Don't allow"
               grantButtonTitle:@"OK"
              completionHandler:^(BOOL hasPermission,
                        APNPermissionRequestDialogResult userDialogResult,
                        APNPermissionRequestDialogResult systemDialogResult) {
                                NSLog(@"Permission: %d",hasPermission);

                                NSArray *actions = @[@"no action",@"denied", @"granted"];
                                NSLog(@"user action: %@",actions[userDialogResult]);
                                NSLog(@"system action: %@",actions[systemDialogResult]);
                                NSLog(@"Settings: %@",[APNPermissionRequest enabledTypeNames]);
}];

要求

SDCAlertView

安装

作者

Tilo Westermann, [email protected]

参考文献

APNPermissionRequest 受 ClusterPrePermissions 启发。

许可证

APNPermissionRequest 可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。