2026/10/27 17:43:29
背景图加载与恢复
适用于 Whiteboard iOS SDK 2.16.147。开启 useMultiViews、enableAppliancePlugin,并在插件 extras 中开启 useBackgroundThread。
加载策略
Objective-C
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。
查询和恢复插件背景图
Objective-C
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 筛选某张图片;省略时使用各资源原地址。