本文档基于当前Demo下载功能所写,用户可以实现自己的下载功能。
该部分资源是指 App编辑时需要的配置文件及菜单图标,文件是以压缩包的形式下载后解压到沙盒中使用的。详见Demo中下面两方法。
- (void)loadAppResourceWithCompletion:(nullable FUResourceManageCompletion)completion {}- (void)getResourceZipWithVersion:(NSString *)version completion:(nullable FUResourceManageCompletion)completion {}这部分下载属于相芯云平台服务,用户也可以把道具放在自己的服务器上实现自己的道具资源下载。
1、配置网络信息
NSString *const apiBasePath = FUApiBasePath;
NSString *const apiKey = FUApiKey;
NSString *const apiSecret = FUApiSecret;
NSString *const projectId = FUProjectId;
FUCloudServiceConfig *config = [[FUCloudServiceConfig alloc]initWithApiKey:apiKey apiSecret:apiSecret projectId:projectId apiBasePath:apiBasePath];
上述网络配置信息,必须在云平台服务所有接口的调用前配置好。
2、详细API,详见FUResourceManager头文件。
/// 根据配置信息初始化云平台能力 【⚠️所有云平台接口调用前需配置】
/// @param config 配置对象
/// @param downloadRootPath 下载文件的保存根路径
- (void)setupWithConfig:(FUCloudServiceConfig *)config downloadRootPath:(NSString *)downloadRootPath;
/// 检查特定场景下是否可以直接展示Avatar
/// @param sceneName 场景名称
/// @param avatarId avatarId【为空字符串时,随机寻找一个内置的avatarId】
/// @param completion 检查结果回调【当没有错误发生就可以直接展示Avatar】
- (void)checkIsEnableShowAvatarDirectlyWithSceneName:(NSString *)sceneName avatarId:(NSString *)avatarId completion:(FUResourceManageCompletion)completion;
/// 脱掉Avatar当前已穿戴道具中没有被配置在itemList中的非法道具
/// @param avatarModel avatar模型
/// @return YES【存在非法道具】 NO【不存在非法道具】
- (BOOL)handleIllegalityItemsIfNeedWithAvatarModel:(FUAvatarModel *)avatarModel;
/// 加载AppAssets配置信息
/// @param completion 结果回调
- (void)loadAppAssetsConfigWithCompletion:(FUResourceManageResultCompletion)completion;
/// 加载基础资源【如需更新会自动更新】
/// @param sceneName 场景名称
/// @param completion 结果回调
- (void)loadBaseResourceWithSceneName:(NSString *)sceneName completion:(FUResourceManageCompletion)completion;
/// 加载基础资源【如需更新会自动更新】
/// @param sceneName 场景名称
/// @param progress 加载进度
/// @param completion 结果回调
- (void)loadBaseResourceWithSceneName:(NSString *)sceneName
progress:(nullable FUResourceManageProgressBlock)progress
completion:(FUResourceManageCompletion)completion;
/// 加载 scene_list.json 中配置的道具【如需更新会自动更新】
/// @param sceneName 场景名称
/// @param progress 加载进度
/// @param completion 结果回调
- (void)loadSceneListItemsWithSceneName:(NSString *)sceneName
progress:(nullable FUResourceManageProgressBlock)progress
completion:(nullable FUResourceManageCompletion)completion;
/// 加载Avatar 的基础道具【如需更新会自动更新,且会隐藏itemList中不存在的道具】
/// @param avatarModel avatar模型
/// @param completion 结果回调
- (void)loadAvatarBaseItemsWithAvatarModel:(FUAvatarModel *)avatarModel completion:(FUResourceManageCompletion)completion;
/// 加载Avatar 的基础道具【如需更新会自动更新,且会隐藏itemList中不存在的道具】
/// @param avatarModel avatar模型
/// @param progress 加载进度
/// @param completion 结果回调
- (void)loadAvatarBaseItemsWithAvatarModel:(FUAvatarModel *)avatarModel
progress:(nullable FUResourceManageProgressBlock)progress
completion:(FUResourceManageCompletion)completion;
/// 批量加载道具【如需更新会自动更新,无法加载itemList中不存在的道具】
/// @param itemPaths 道具fileId(相对路径)集合
/// @param completion 下载结果回调
- (void)loadItemsWithPaths:(NSArray *)itemPaths completion:(FUResourceManageCompletion)completion;
/// 批量加载道具【如需更新会自动更新,无法加载itemList中不存在的道具】
/// @param itemPaths 道具fileId(相对路径)集合
/// @param progress 下载进度
/// @param completion 下载结果回调
- (void)loadItemsWithPaths:(NSArray *)itemPaths
progress:(nullable FUResourceManageProgressBlock)progress
completion:(FUResourceManageCompletion)completion;
/// 资源文件状态
/// @param itemPath 道具fileId(相对路径)
- (FUResourceState)resourceStateWithPath:(NSString *)itemPath;