// // RQShareFunction.h // LN_School // // Created by 张嵘 on 2018/10/16. // Copyright © 2018 Danson. All rights reserved. // #import #import "RQRemoteTheoryManager.h" #define RQ_SHARE_FUNCTION [RQShareFunction shareManager] NS_ASSUME_NONNULL_BEGIN //弹窗点击事件回调 typedef void (^RQAlertViewCompletion) (NSUInteger selectedOtherButtonIndex); //获取图片方式 typedef NS_ENUM(NSInteger, GetPhotosWay) { GetPhotosWay_Camera = 0, GetPhotosWay_Album, }; typedef void(^PhotosBlock)(NSArray *imagesArr); @interface RQShareFunction : NSObject + (instancetype)shareManager; #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_12_0 // 当前模式 @property (assign, readwrite, nonatomic) UIUserInterfaceStyle currentUserInterfaceStyle API_AVAILABLE(ios(13.0), tvos(13.0)); #endif // 理论计时不开启开启人脸比对模式 (不开启地市:台州-3310) @property (copy, readonly, nonatomic) NSArray *theoryOfTimingNoOpenFaceToFaceArr; // 个人中心功能模块类型一(预约相关,模拟相关,资讯相关)(开启地市:福州-3501,厦门-3502) @property (copy, readonly, nonatomic) NSArray *personalTypeOneCityCodeArr; // 个人中心功能模块类型一(预约相关,资讯相关)(开启地市:温州-3303) @property (copy, readonly, nonatomic) NSArray *personalTypeTwoCityCodeArr; // 学车计时功能模块类型一(理论计时,实操计时,模拟计时,我的学时)(开启地市:福州-3501,厦门-3502,温州-3303) @property (copy, readonly, nonatomic) NSArray *timingTypeOneCityCodeArr; // 学车计时功能模块类型二(理论计时,我的学时)(开启地市:莆田-3503) @property (copy, readonly, nonatomic) NSArray *timingTypeTwoCityCodeArr; // 理论计时类型一 (在科目二,科目三可以进行科目四的理论计时) (开启地市:福州-3501,莆田-3503) @property (copy, readonly, nonatomic) NSArray *theoryOfTimingTypeOneCityCodeArr; // 理论计时类型二地市编号:null (在科目二可以进行科目四的理论计时)(开启地市:) @property (copy, readonly, nonatomic) NSArray *theoryOfTimingTypeTwoCityCodeArr; // 理论计时类型三 (在科目三可以进行科目四的理论计时)(开启地市:厦门-3502) @property (copy, readonly, nonatomic) NSArray *theoryOfTimingTypeThreeCityCodeArr; @property (strong, readwrite, nonatomic) NSArray *shieldTopicIDArr; @property (strong, readwrite, nonatomic) NSArray *shieldPeopleIDArr; @property (strong, readwrite, nonatomic) NSArray *announcementIDArr; @property (assign, readwrite, nonatomic) BOOL APP_AD; @property (assign, readwrite, nonatomic) NSInteger APP_CLOSE; @property (assign, readwrite, nonatomic) NSInteger APP_AD_CYCLE; /// 开屏广告展示概率 @property (assign, readwrite, nonatomic) NSInteger APP_KP; @property (assign, readwrite, nonatomic) NSInteger APP_OPEN_COMMUNITY; /// 审核开关 @property (assign, readwrite, nonatomic) NSInteger APP_SWITCH; @property (assign, readwrite, nonatomic) CGFloat RQADViewHeight; @property (assign, readwrite, nonatomic) NSInteger myErorNum; @property (assign, readwrite, nonatomic) NSInteger myCollectNum; //开启投诉地址 @property (assign, readwrite, nonatomic) NSInteger SP_COMPLAINT_DQBH; // 时间转换为时间戳 - (NSInteger)getTimeStampWithDate:(NSDate *)date; // 时间戳转换为时间 - (NSDate *)getDateWithTimeStamp:(NSInteger)timeStamp; // 一个时间戳与当前时间的间隔(s) - (NSInteger)getIntervalsWithTimeStamp:(NSInteger)timeStamp; // 根据时间和formatter获取时间字符串 - (NSString *)getTimeStrWithDate:(NSDate *)date formatter:(NSString *)formatterStr; // 一个时间戳与另一个时间戳的间隔(s) - (NSInteger)getIntervalsWithTimeStamp:(NSInteger)timeStamp anotherTimeStamp:(NSInteger)anotherTimeStamp; // 根据时间字符串和formatter获取时间戳 - (NSInteger)getTimeStampWithTimeStr:(NSString *)timeStr formatter:(NSString *)formatterStr; - (NSInteger)getTimeStampWithHour:(NSInteger)hour andMinute:(NSInteger)minute andDate:(NSDate *)date; /** * 获取图片 * * @author ZhangRong * @date 2018-10-17 10:55:22 * * @param getPhotosWay 获取图片方式 * @param size 图片尺寸比例 * @param maxLength 图片内存大小限制 * @param maxImagesCount 最大图片选择 * @param isCheckBody 是否是活体拍照 * @param photosBlock 弹窗点击事件回调 */ - (void)getPhotosWithGetPhotosWay:(GetPhotosWay)getPhotosWay size:(CGSize)size maxLength:(NSUInteger)maxLength maxImagesCount:(NSUInteger)maxImagesCount isCheckBody:(BOOL)isCheckBody photosBlock:(PhotosBlock)photosBlock; /** * 获取当前页面 * * @author ZhangRong * @date 2018-10-17 10:59:22 */ - (UIViewController *)topViewController; - (UIViewController *)currentViewController; - (UIViewController *)topViewController:(UIViewController*)rootViewController; /** * 在某个页面展示弹窗 * * @author ZhangRong * @date 2018-10-12 11:27:55 * * @param viewController 在该页面弹出 * @param title 标题 * @param message 副标题(可为nil) * @param alertControllerStyle 弹窗类型 * @param cancelButtonTitle 取消按钮标题 * @param otherButtonTitles 按钮标题数组 * @param otherButtonStyles 按钮类型数组 * @param preferredActionTitle 按钮文字加粗数组(UIAlertControllerStyleAlert有效) * @param showInWindow 是否展示在keywindow上 * @param completion 按钮点击回调 */ - (void)showAlertAtViewController:(nonnull UIViewController *)viewController WithTitle:(nullable NSString *)title message:(nullable NSString *)message alertControllerStyle:(UIAlertControllerStyle)alertControllerStyle cancelButtonTitle:(nullable NSString *)cancelButtonTitle otherButtonTitles:(nullable NSArray *)otherButtonTitles otherButtonStyles:(nullable NSDictionary *)otherButtonStyles preferredActionTitle:(nullable NSString *)preferredActionTitle showInWindow:(BOOL)showInWindow completion:(nullable RQAlertViewCompletion)completion; /** * 展示弹窗(设置按钮文字加粗) * * @author ZhangRong * @date 2018-10-12 11:27:55 * * @param title 标题 * @param message 副标题(可为nil) * @param alertControllerStyle 弹窗类型 * @param cancelButtonTitle 取消按钮标题 * @param otherButtonTitles 按钮标题数组 * @param otherButtonStyles 按钮类型数组 * @param preferredActionTitle 按钮文字加粗数组(UIAlertControllerStyleAlert有效) * @param showInWindow 是否展示在keywindow上 * @param completion 按钮点击回调 */ - (void)showAlertWithTitle:(nullable NSString *)title message:(nullable NSString *)message alertControllerStyle:(UIAlertControllerStyle)alertControllerStyle cancelButtonTitle:(nullable NSString *)cancelButtonTitle otherButtonTitles:(nullable NSArray *)otherButtonTitles otherButtonStyles:(nullable NSDictionary *)otherButtonStyles preferredActionTitle:(nullable NSString *)preferredActionTitle showInWindow:(BOOL)showInWindow completion:(nullable RQAlertViewCompletion)completion; /** * 展示弹窗 * * @author ZhangRong * @date 2018-10-12 11:27:55 * * @param title 标题 * @param message 副标题(可为nil) * @param alertControllerStyle 弹窗类型 * @param cancelButtonTitle 取消按钮标题 * @param otherButtonTitles 按钮标题数组 * @param otherButtonStyles 按钮类型数组 * @param showInWindow 是否展示在keywindow上 * @param completion 按钮点击回调 */ - (void)showAlertWithTitle:(nullable NSString *)title message:(nullable NSString *)message alertControllerStyle:(UIAlertControllerStyle)alertControllerStyle cancelButtonTitle:(nullable NSString *)cancelButtonTitle otherButtonTitles:(nullable NSArray *)otherButtonTitles otherButtonStyles:(nullable NSDictionary *)otherButtonStyles showInWindow:(BOOL)showInWindow completion:(nullable RQAlertViewCompletion)completion; /// 展示文本弹窗 /// @param message 文本 /// @param completion 回调 - (void)showAlertWithMessage:(nullable NSString *)message completion:(nullable RQAlertViewCompletion)completion; /** 第一次进入APP提示指引页面 */ - (void)showGuidePicture; /** 检查版本 */ - (void)checkVersion; /** * 展示大图 * * @author ZhangRong * @date 2020-06-16 14:30:55 * * @param dataSource 图片数组(Url数组) * @param currentIndex 当前标签 * @param isCanSave 是否保存图片 */ - (void)showPhotoBrowserWithDataSource:(NSArray *)dataSource currentIndex:(NSInteger)currentIndex isCanSave:(BOOL)isCanSave; /** * Mob隐私判断 * * @author ZhangRong * @date 2020-06-16 14:30:55 */ - (void)checkMobPolicyOnResult:(void (^_Nullable)(BOOL success))handler; /// 保存到本地数据 /// @param object 值 /// @param key 键 - (void)saveObjectWithObject:(id)object ForKey:(NSString* )key; /// 获取本地数据 /// @param key 键 - (id)getObjectWithKey:(NSString *)key; // 检测抓包 - (BOOL)checkProxySetting; // 前往H5 - (void)gotoWebViewWithUrlStr:(NSString *)url; // 前往小程序 - (void)miniwithUserName:(NSString *)userName path:(NSString *)path; @end NS_ASSUME_NONNULL_END