背景图加载与恢复
适用于 Fastboard iOS 1.4.6。本页通过 Fastboard 公开的原生 SDK 对象配置教具插件。
在创建 FastRoom 前设置配置,入房成功后使用 fastRoom.room 和 fastRoom.whiteSDK。delegate 通过 fastRoom.commonDelegate、roomDelegate 设置,避免覆盖 Fastboard 内部代理。
let config = FastRoomConfiguration(appIdentifier: appIdentifier,
roomUUID: uuid, roomToken: roomToken, region: .CN, userUID: uid)
config.whiteSdkConfiguration.useMultiViews = true
config.whiteSdkConfiguration.enableAppliancePlugin = true
let pluginOptions = WhiteAppliancePluginOptions()
pluginOptions.extras = ["useBackgroundThread": true]
config.whiteRoomConfig.appliancePluginOptions = pluginOptions
let fastRoom = Fastboard.createFastRoom(withFastRoomConfig: config)
以下 Objective-C 示例也可用于原生调用:config 表示 FastRoomConfiguration.whiteSdkConfiguration,roomConfig 表示 whiteRoomConfig,room、whiteSDK 分别来自已入房 FastRoom 的同名属性。
开启 useMultiViews、enableAppliancePlugin,并在插件 extras 中开启 useBackgroundThread。
加载策略
WhiteBackgroundImageLoadOptions *load = [WhiteBackgroundImageLoadOptions new];
load.maxRetries = 3;
load.timeoutMs = 15000;
load.retryIntervalMs = 1000;
config.backgroundImageLoadOptions = load;
初始化 SDK 前设置。maxRetries 为 -1 或 0~10,timeoutMs 为 1000~120000 毫秒,retryIntervalMs 为 0~30000 毫秒;默认分别为 3、15000、1000。当前背景图来源为 appliance。
查询和恢复插件背景图
WhiteHasBackgroundImageParams *query = [WhiteHasBackgroundImageParams new];
query.viewId = @"mainView";
query.scenePath = @"/init/1";
query.imageUrl = @"https://example.com/background.png";
query.sources = @[@"appliance"];
[whiteSDK hasBackgroundImage:query completionHandler:^(BOOL exists, NSError *error) {
NSLog(@"exists=%d error=%@", exists, error);
}];
WhiteReloadBackgroundImageParams *retry = [WhiteReloadBackgroundImageParams new];
retry.source = @"appliance";
retry.viewId = @"mainView";
retry.scenePath = @"/init/1";
[whiteSDK reloadBackgroundImage:retry completionHandler:^(WhiteReloadBackgroundImageResult *result, NSError *error) {
NSLog(@"accepted=%d count=%ld error=%@", result.accepted, (long)result.reloadedCount, error);
}];
恢复针对当前聚焦场景此前失败的背景资源;accepted 表示请求已接收,不表示加载成功。reloadedCount 表示触发重载的图片数量。
通过 WhiteCommonCallbackDelegate.onBackgroundImageLoad:、onApplianceInitLoadingChange: 接收事件,参数类型分别为 WhiteBackgroundImageLoadEvent、WhiteApplianceInitLoadingChangeEvent,保留 state/source/resourceUrl/viewId/scenePath 或 loading/phase/status 等字段。
普通图片
原生普通图片使用 WhiteRoom.insertImage:src:。锁定普通图片仅限制其编辑,不能将它转为插件背景资源;因此普通图片不使用上述背景存在性查询和恢复接口。插件背景可由房间内已经启用插件的 Web 端插入后同步显示。
恢复参数中的可选 url 是替换重载地址,会替换目标场景中所有匹配失败资源的地址,不是按 URL 筛选某张图片;省略时使用各资源原地址。