添加扩展键盘本地皮肤

This commit is contained in:
2025-11-20 14:27:57 +08:00
parent b3ce856ad4
commit 799b0f3989
18 changed files with 674 additions and 232 deletions

View File

@@ -10,6 +10,7 @@
#import "KBKeyboardPermissionManager.h"
#import "KBNetworkManager.h"
#import "KBHUD.h"
#import "KBSkinInstallBridge.h"
#if __has_include(<SSZipArchive/SSZipArchive.h>)
#import <SSZipArchive/SSZipArchive.h>
@@ -19,28 +20,6 @@
#pragma mark - Icon short-name mapping (local default)
/// ->
/// - skinJSON key_icons Zip 退使 zip_url +
+ (NSDictionary<NSString *, NSString *> *)kb_defaultIconShortNames {
static NSDictionary<NSString *, NSString *> *map;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//
// 使 .strings 便
NSString *path = [[NSBundle mainBundle] pathForResource:@"KBSkinIconMap" ofType:@"strings"];
if (path.length > 0) {
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
if ([dict isKindOfClass:NSDictionary.class]) {
map = dict;
}
}
if (!map) {
map = @{}; //
}
});
return map;
}
+ (instancetype)shared {
static KBSkinService *s; static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{ s = [KBSkinService new]; });
@@ -104,12 +83,12 @@
// key_icons
// - key_icons使
// - 退kb_defaultIconShortNames id/name/zip_url
// - 退KBSkinInstallBridge.defaultIconShortNames id/name/zip_url
NSDictionary *iconShortNames = nil;
if ([skin[@"key_icons"] isKindOfClass:NSDictionary.class]) {
iconShortNames = skin[@"key_icons"];
} else {
iconShortNames = [self.class kb_defaultIconShortNames];
iconShortNames = [KBSkinInstallBridge defaultIconShortNames];
}
NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:AppGroup];
@@ -284,7 +263,7 @@
if ([skin[@"key_icons"] isKindOfClass:NSDictionary.class]) {
iconShortNames = skin[@"key_icons"];
} else {
iconShortNames = [self.class kb_defaultIconShortNames];
iconShortNames = [KBSkinInstallBridge defaultIconShortNames];
}
NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:AppGroup];