使用
初始化
激活离线包服务
接口定义
+ (void)activate;
调用说明
- 在
-application:didFinishLaunchingWithOptions:
App 函数中调用 - 强烈建议放置到前面初始化,在网关配置之后,其他代码初始化之前调用
调用示例
[TMFWebOfflineService activate];
日志选项
TMFWebOffline 使用 TMFBaseCore
中定义的日志输出接口和日志级别定义,下面是配置组件日志的示例:
// AppDelegate.m
#if DEBUG
[TMFWebOfflineService setLogLevels:TMFBaseCoreLogLevelAll];
#elif
[TMFWebOfflineService setLogLevels:TMFBaseCoreLogLevelNone];
#endif
下面是只输出警告+错误的日志配置示例:
[TMFWebOfflineService setLogLevels:(TMFBaseCoreLogLevelWarn | TMFBaseCoreLogLevelError)];
功能介绍
自定义离线包更新配置
生成离线包更新配置实例。
接口定义
/**
@brief 离线包更新可选设置项
*/
@interface TMFWebOfflineServiceOptions : NSObject
/**
@brief 离线包更新可选设置项实例
*/
+ (instancetype)options;
/**
@brief Mask,默认0
*/
@property (nonatomic, assign) NSInteger mask;
/**
@brief 更新来源,默认 `TMFWebOfflineServiceOptionsSourceRequest`
*/
@property (nonatomic, assign) TMFWebOfflineServiceOptionsSource source;
/**
@brief 本地缓存更新策略,默认 `TMFWebOfflineServiceOptionsCachePolicyDownloadAndUpdate`
*/
@property (nonatomic, assign) TMFWebOfflineServiceOptionsCachePolicy cachePolicy;
/**
@brief 是否忽略更新频率,默认NO
*/
@property (nonatomic, assign) BOOL ignoresFrequency;
/**
@brief 是否忽略调用延迟,默认YES
*/
@property (nonatomic, assign) BOOL ignoresDelay;
@end
参数说明
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
mask | NSInteger | 已废弃 | N |
source | TMFWebOfflineServiceOptionsSource | 更新来源 | N |
cachePolicy | TMFWebOfflineServiceOptionsCachePolicy | 本地缓存更新策略 | N |
ignoresFrequency | BOOL | 是否忽略更新频率,默认 NO | N |
ignoresDelay | BOOL | 是否忽略调用延迟,默认 YES | N |
其中,TMFWebOfflineServiceOptionsSource 的定义如下:
/**
@brief 离线包更新来源
@note 枚举值对齐 `TMFWebOffline_Tars_EReqSource`
*/
typedef NS_ENUM(NSInteger, TMFWebOfflineServiceOptionsSource) {
TMFWebOfflineServiceOptionsSourceRequest = 0, ///< 主动拉取更新
TMFWebOfflineServiceOptionsSourcePush = 1, ///< 通过push进行更新
};
TMFWebOfflineServiceOptionsCachePolicy 的定义如下:
/**
@brief 检查到离线包更新时本地缓存的更新策略
*/
typedef NS_ENUM(NSInteger, TMFWebOfflineServiceOptionsCachePolicy) {
TMFWebOfflineServiceOptionsCachePolicyDownloadAndUpdate = 0, ///< 检查到更新后,等下载最新离线包后覆盖本地缓存
TMFWebOfflineServiceOptionsCachePolicyRemoveAndDownload = 1, ///< 检查到更新后,先移除本地缓存,然后下载最新离线包后更新
};
返回值
类型 | 描述 |
---|---|
TMFWebOfflineServiceOptions | 离线包更新可选设置项实例 |
调用示例
TMFWebOfflineServiceOptions *options = [TMFWebOfflineServiceOptions options];
options.ignoresFrequency = YES;
公有云初始化离线包接口
调用示例
// PUSH处理策略:`不更新`,`仅WiFi下更新`,`WiFi和蜂窝都更新`
TMFWebOfflineConfiguration *configuration = [TMFWebOfflineConfiguration configuration];
configuration.pushHandlePolicy = TMFWebOfflinePushHandlePolicyWiFiAndCellular;
// 推送协议
configuration.pushPassagePolicy = TMFWebOfflinePushPassagePolicyPushGo;
[TMFWebOfflineService activateWithConfiguration:configuration];
早期版本离线包任务推拉是依赖数据同步组件来完成的,从公有云版本起,离线包支持直接使用移动网关来实现任务推拉,可以解除任务推拉对数据同步组件的依赖。不过本次协议调整对新版服务有依赖,考虑到私有化客户不同的服务版本,SDK侧做了兼容,同时保留了两套协议实现,客户在初始化时根据自身服务情况指定协议版本即可。其中使用公有云的初始化协议参数说明如下:
/**
@brief 离线包推送协议
*/
typedef NS_ENUM(NSInteger, TMFWebOfflinePushPassagePolicy) {
TMFWebOfflinePushPassagePolicyInstruction = 0, // default
TMFWebOfflinePushPassagePolicyPushGo = 1,
};
单业务ID检查更新并预加载离线包
默认配置预加载-单业务ID
根据单个离线包业务ID以及默认更新配置,检查更新并预加载离线包,回调更新结果。
接口定义
+ (void)checkAndUpdateWithBID:(NSString *)BID completionHandler:(void(^)(BOOL isUpdated, NSError * _Nullable error))completionHandler;
参数说明
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
BID | NSString | 离线包业务 ID | Y |
completionHandler 回调
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
isUpdated | BOOL | 更新结果,成功 YES,失败 NO | Y |
error | NSError | 更新失败时的错误信息 | N |
调用示例
[TMFWebOfflineService checkAndUpdateWithBID:@"BID" completionHandler:^(BOOL isUpdated, NSError * _Nullable error) {
// callback
}];
自定义配置预加载-单业务ID
根据单个离线包业务 ID 以及自定义更新配置,检查更新并预加载离线包,回调更新结果。
接口定义
+ (void)checkAndUpdateWithBID:(NSString *)BID options:(TMFWebOfflineServiceOptions *)options completionHandler:(void(^)(BOOL isUpdated, NSError * _Nullable error))completionHandler;
参数说明
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
BID | NSString | 离线包业务 ID | Y |
options | TMFWebOfflineServiceOptions | 可选配置 | Y |
其中,TMFWebOfflineServiceOptions 的定义和实例化,请参见 自定义离线包更新配置。
completionHandler 回调
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
isUpdated | BOOL | 更新结果,成功 YES,失败 NO | Y |
error | NSError | 更新失败时的错误信息 | N |
调用示例
TMFWebOfflineServiceOptions *options = [TMFWebOfflineServiceOptions options];
options.ignoresFrequency = YES;
[TMFWebOfflineService checkAndUpdateWithBID:@"BID" options:options completionHandler:^(BOOL isUpdated, NSError * _Nullable error) {
// callback
}];
多业务ID检查更新并预加载离线包
默认配置预加载-多业务ID
根据一组离线包业务 ID 以及默认更新配置,检查更新并预加载离线包,回调更新结果。
接口定义
+ (void)checkAndUpdateWithBIDs:(NSArray<NSString *> *)BIDs completionHandler:(void(^)(NSArray<NSString *> *updatedBIDs))completionHandler;
参数说明
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
BIDs | NSArray |
离线包业务 ID 列表 | Y |
completionHandler 回调
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
updatedBIDs | NSArray |
可更新的离线包业务 ID 列表 | Y |
调用示例
[TMFWebOfflineService checkAndUpdateWithBIDs:@[@"BID1",@"BID2"] completionHandler:^(NSArray<NSString *> * _Nonnull updatedBIDs) {
// callback
}];
自定义配置预加载-多业务ID
根据一组离线包业务 ID 以及自定义更新配置,检查更新并预加载离线包,回调更新结果。
接口定义
+ (void)checkAndUpdateWithBIDs:(NSArray<NSString *> *)BIDs options:(TMFWebOfflineServiceOptions *)options completionHandler:(void(^)(NSArray<NSString *> *updatedBIDs))completionHandler;
参数说明
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
BIDs | NSArray |
离线包业务 ID 列表 | Y |
options | TMFWebOfflineServiceOptions | 可选配置 | Y |
其中,TMFWebOfflineServiceOptions 的定义和实例化见 自定义离线包更新配置。
completionHandler 回调
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
updatedBIDs | NSArray |
可更新的离线包业务 ID 列表 | Y |
调用示例
TMFWebOfflineServiceOptions *options = [TMFWebOfflineServiceOptions options];
options.ignoresFrequency = YES;
[TMFWebOfflineService checkAndUpdateWithBIDs:@[@"BID1",@"BID2"] options:options completionHandler:^(NSArray<NSString *> * _Nonnull updatedBIDs) {
// callback
}];
全量更新并预加载离线包
默认配置预加载-全量
使用默认配置检查全量可更新的离线包并预加载离线包,回调可更新的业务 ID 列表。
接口定义
+ (void)checkAndUpdateAllAvailablePackagesWithCompletionHandler:(void(^)(NSArray<NSString *> *updatedBIDs))completionHandler;
completionHandler 回调
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
updatedBIDs | NSArray |
可更新的离线包业务 ID 列表 | Y |
调用示例
[TMFWebOfflineService checkAndUpdateAllAvailablePackagesWithCompletionHandler:^(NSArray<NSString *> * _Nonnull updatedBIDs) {
// callback
}];
自定义配置预加载-全量
使用自定义配置检查全量可更新的离线包并预加载离线包,回调可更新的业务 ID 列表。
接口定义
+ (void)checkAndUpdateAllAvailablePackagesWithOptions:(TMFWebOfflineServiceOptions *)options completionHandler:(void(^)(NSArray<NSString *> *updatedBIDs))completionHandler;
参数说明
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
options | TMFWebOfflineServiceOptions | 可选配置 | Y |
其中,TMFWebOfflineServiceOptions 的定义和实例化,请参见 自定义离线包更新配置。
completionHandler 回调
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
updatedBIDs | NSArray |
可更新的离线包业务 ID 列表 | Y |
调用示例
TMFWebOfflineServiceOptions *options = [TMFWebOfflineServiceOptions options];
options.ignoresFrequency = YES;
[TMFWebOfflineService checkAndUpdateAllAvailablePackagesWithOptions:options completionHandler:^(NSArray<NSString *> * _Nonnull updatedBIDs) {
// callback
}];
生效离线包
生效已经下载更新的离线包。
接口定义
+ (void)uncompressPackagesIfNeeded;
调用示例
[TMFWebOfflineService uncompressPackagesIfNeeded];
获取本地离线包的版本号
根据离线包业务ID获取本地离线包的版本号,未安装的话版本号为0。
接口定义
+ (int)localVersionForBID:(NSString *)BID;
参数说明
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
BID | NSString | 离线包业务 ID | Y |
返回值
类型 | 描述 |
---|---|
int | 本地离线包的版本号 |
调用示例
[TMFWebOfflineService localVersionForBID:@"BID"];
移除本地离线包
单业务ID移除本地离线包
根据离线包业务 ID 移除本地离线包。
接口定义
+ (void)removeLocalPackageWithBID:(NSString *)BID;
参数说明
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
BID | NSString | 离线包业务 ID | Y |
调用示例
[TMFWebOfflineService removeLocalPackageWithBID:@"BID"];
多业务ID移除本地离线包
根据一组离线包业务 ID 移除本地离线包。
接口定义
+ (void)removeLocalPackageWithBIDs:(NSArray<NSString *> *)BIDs;
参数说明
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
BIDs | NSArray |
离线包业务 ID 列表 | Y |
调用示例
[TMFWebOfflineService removeLocalPackageWithBIDs:@[@"BID1",@"BID2"]];
移除全部本地离线包
移除全部本地离线包。
接口定义
+ (void)removeAllLocalPackage;
调用示例
[TMFWebOfflineService removeAllLocalPackage];