配置化json strings

This commit is contained in:
2025-11-19 20:16:19 +08:00
parent 0196128008
commit 8dbaa9dcf6
5 changed files with 478 additions and 154 deletions

View File

@@ -14,6 +14,14 @@ NS_ASSUME_NONNULL_BEGIN
typedef void(^KBSkinApplyCompletion)(BOOL success);
/// 皮肤资源来源
typedef NS_ENUM(NSUInteger, KBSkinSourceMode) {
/// 远程 Zip通过网络下载 zip_url 并解压到 App Group
KBSkinSourceModeRemoteZip = 0,
/// 本地 bundle Zip从主 App bundle 中读取 zip_url 指定的 zip 文件并解压到 App Group
KBSkinSourceModeLocalBundleZip = 1,
};
/// 皮肤下载与应用服务(仅主 App 使用)
@interface KBSkinService : NSObject
@@ -23,12 +31,13 @@ typedef void(^KBSkinApplyCompletion)(BOOL success);
///
/// @param skinJSON 与后端约定的皮肤结构(包含 id/name/background_image/hidden_keys/key_icons 等)
/// @param presenting 用于弹出“键盘权限引导页”的控制器,可为 nil
/// @param mode 资源来源模式:远程 / 本地 bundle
/// @param completion 应用完成回调(下载/写入全部结束后调用success 表示是否成功)
- (void)applySkinWithJSON:(NSDictionary *)skinJSON
fromViewController:(nullable UIViewController *)presenting
mode:(KBSkinSourceMode)mode
completion:(nullable KBSkinApplyCompletion)completion;
@end
NS_ASSUME_NONNULL_END