123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- //
- // UMRemoteConfig.h
- // myFireBase
- //
- // Created by 张军华 on 2019/12/30.
- // Copyright © 2019年 张军华. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "UMRemoteConfigEnum.h"
- NS_ASSUME_NONNULL_BEGIN
- typedef void (^UMRemoteConfigFetchCompletion)(UMRemoteConfigFetchStatus status,
- NSError *_Nullable error);
- typedef void (^UMRemoteConfigActivateCompletion)(NSError *_Nullable error);
- @protocol UMRemoteConfigDelegate<NSObject>
- @optional
- /**
- * @brief 获取服务器的网络请求的回调
- * @param status see UMRemoteConfigFetchStatus
- * @param error 错误信息
- * @param userInfo 该回调的扩展信息
- * @note 调用函数触发此回调
- * fetchWithCompletionHandler
- * fetchAndActivateWithCompletionHandler
- */
- -(void)remoteConfigFetched:(UMRemoteConfigFetchStatus)status
- error:(nullable NSError*)error
- userInfo:(nullable id)userInfo;
- /**
- * @brief 远程配置被激活的回调
- * @param status see UMRemoteConfigActiveStatus
- * @param error 错误信息
- * @param userInfo 该回调的扩展信息
- * @note 调用函数触发此回调
- * fetchAndActivateWithCompletionHandler
- * activateWithCompletionHandler
- */
- -(void)remoteConfigActivated:(UMRemoteConfigActiveStatus)status
- error:(nullable NSError*)error
- userInfo:(nullable id)userInfo;
- /**
- * @brief 配置已经准备就绪
- * @param status see UMRemoteConfigActiveStatus
- * @param error 错误信息
- * @param userInfo 该回调的扩展信息
- * @note 调用函数触发此回调
- * fetchWithCompletionHandler
- */
- -(void)remoteConfigReady:(UMRemoteConfigActiveStatus)status
- error:(nullable NSError*)error
- userInfo:(nullable id)userInfo;
- @end
- @class UMRemoteConfigSettings;
- @interface UMRemoteConfig : NSObject
- @property(nonatomic,assign)id<UMRemoteConfigDelegate> remoteConfigDelegate;
- @property(nonatomic, readwrite, strong) UMRemoteConfigSettings *configSettings;
- #pragma mark - init
- /**
- * @brief 远程配置单例
- * @param delegate see UMRemoteConfigDelegate
- * @note 用户初始化时候,
- 先调用 remoteConfigWithDelegate:(id<UMRemoteConfigDelegate>)delegate,可以保证上次ready的数据可以回调给用户。
- */
- + (UMRemoteConfig *)remoteConfigWithDelegate:(nullable id<UMRemoteConfigDelegate>)delegate
- withConfigSettings:(nullable UMRemoteConfigSettings*)configSettings;
- + (UMRemoteConfig *)remoteConfig;
- #pragma mark - activate
- /**
- * @brief 激活本地配置
- * @param completionHandler 回调
- */
- + (void)activateWithCompletionHandler:(nullable UMRemoteConfigActivateCompletion)completionHandler;
- #pragma mark - Get Config
- /**
- * @brief 获取配置信息
- * @param key 对应的key
- * @note 获取配置的有限顺利,远程配置->Defaults
- */
- + (nullable id)configValueForKey:(nullable NSString *)key;
- #pragma mark - Defaults
- /**
- * @brief 设置本地默认配置
- * @param defaults 对应的本地配置
- */
- + (void)setDefaults:(nullable NSDictionary<NSString *, NSObject *> *)defaults;
- /**
- * @brief 设置本地默认配置
- * @param fileName 包含本地配置的plist文件
- */
- + (void)setDefaultsFromPlistFileName:(nullable NSString *)fileName;
- @end
- NS_ASSUME_NONNULL_END
|