LTPrivacyPermission 0.0.7

LTPrivacyPermission 0.0.7

lightank 维护。



  • lightank

LTPrivacyPermission

LTPrivacyPermission 是一个 获取/检测 系统隐私权限的库

License  Platform  Support  Cocoapods  Language 

支持的隐私权限

  • 相册
    • 隐私 - 相册使用描述
  • 相机
    • 隐私 - 摄像头使用描述
  • 媒体资源库
    • 隐私 - 媒体资源库使用描述
  • 麦克风
    • 隐私 - 麦克风使用描述
  • 位置
    • 隐私 - 使用期间/始终访问地理位置使用描述
    • 隐私 - 始终访问地理位置使用描述
    • 隐私 - 使用期间访问地理位置
  • 推送
  • 语音识别
    • 隐私 - 语音识别使用描述
  • 日历
    • 隐私 - 日历使用描述
  • 通讯录
    • 隐私 - 通讯录使用描述
  • 提醒事项
    • 隐私 - 提醒事项使用描述
  • 网络(针对中国地区)

预览

主页(中文) 主页(美国)
Asset/permission_zh Asset/permission_en

CocoaPods 安装

 pod 'LTPrivacyPermission'

使用

由于后续某个版本添加了请求权限的代码,但未在 /Info.plist/ 中配置相应的key,导致提交审核的二进制文件被拒。被拒示例信息如下

 This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

因此,此库使用宏进行条件编译。由于支持CocoaPods,可能无法修改.h文件,建议在pch文件中定义以下宏定义,根据需要选择哪个宏,或者创建一个名为LTPrivacyPermissionHeader.h的文件,在该.h文件中定义所需的宏

#define LT_Permission_Photo    //0, 相册
#define LT_Permission_Camera   //1, 相机
#define LT_Permission_Microphone //2, 麦克风
#define LT_Permission_Location_WhenInUse   //3, 使用期间访问地理位置
#define LT_Permission_Location_Always  //4, 始终访问地理位置
#define LT_Permission_Location_AlwaysAndWhenInUse  //5, 使用期间/始终访问地理位置
#define LT_Permission_Contact   //6, 通讯录
#define LT_Permission_PushNotification //7, 推送
#define LT_Permission_MediaLibrary //8, 媒体资源库
#define LT_Permission_Speech   //9, 语音识别
#define LT_Permission_Calendar //10, 日历
#define LT_Permission_Reminder  //11, 提醒事项
#define LT_Permission_Network //12, 网络

以下是一些示例:

获取权限:

//access:
[LTPrivacyPermission.sharedPermission accessPrivacyPermissionWithType:indexPath.row completion:^(BOOL authorized, LTPrivacyPermissionAuthorizationStatus status) {
    if (!authorized)
    {
        // show open application settings alert
        [LTPrivacyPermission showOpenApplicationSettingsAlertWithTitle:NSLocalizedString(@"Permission.ErrorTitle", nil) message:NSLocalizedString(@"Permission.ErrorTitleInfo", nil) cancelActionTitle:NSLocalizedString(@"Permission.ErrorCancel", nil) settingActionTitle:NSLocalizedString(@"Permission.ErrorOpenSetting", nil)];
    }
    else
    {
        // do something you want to do
    }
}];

检测是否有权限:

//check:
[LTPrivacyPermission.sharedPermission checkPrivacyPermissionWithType:indexPath.row completion:^(BOOL authorized, LTPrivacyPermissionType type, LTPrivacyPermissionAuthorizationStatus status) {
    if (!authorized)
    {
        [LTPrivacyPermission showOpenApplicationSettingsAlertWithTitle:NSLocalizedString(@"Permission.ErrorTitle", nil) message:NSLocalizedString(@"Permission.ErrorTitleInfo", nil) cancelActionTitle:NSLocalizedString(@"Permission.ErrorCancel", nil) settingActionTitle:NSLocalizedString(@"Permission.ErrorOpenSetting", nil)];
    }
}];

引用链接

许可

LTPrivacyPermission使用MIT许可