LTPrivacyPermission
LTPrivacyPermission 是一个 获取/检测 系统隐私权限的库
支持的隐私权限
- 相册
- 隐私 - 相册使用描述
- 相机
- 隐私 - 摄像头使用描述
- 媒体资源库
- 隐私 - 媒体资源库使用描述
- 麦克风
- 隐私 - 麦克风使用描述
- 位置
- 隐私 - 使用期间/始终访问地理位置使用描述
- 隐私 - 始终访问地理位置使用描述
- 隐私 - 使用期间访问地理位置
- 推送
- 语音识别
- 隐私 - 语音识别使用描述
- 日历
- 隐私 - 日历使用描述
- 通讯录
- 隐私 - 通讯录使用描述
- 提醒事项
- 隐私 - 提醒事项使用描述
- 网络(针对中国地区)
预览
主页(中文) | 主页(美国) |
---|---|
![]() |
![]() |
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许可