初始化与鉴权
初始化与鉴权
TmkTranslationSDK.shared
SDK 入口是单例:
TmkTranslationSDK.shared
类型:TmkTranslationSDK
sdkVersion
获取当前 SDK 版本号,返回不带前缀的语义化版本字符串(如 1.2.0)。该属性为类型级静态常量,无需 shared 实例即可读取。
public static let sdkVersion: String
示例:
let version = TmkTranslationSDK.sdkVersion // "1.2.0"
sdkInit(_:)
用于初始化 SDK 全局配置。
public func sdkInit(_ config: TmkTranslationGlobalConfig)
参数说明:
-
config: TmkTranslationGlobalConfig- SDK 全局配置对象。
返回值:
- 无返回值。
行为说明:
-
只保存全局配置并初始化日志。
-
不会自动触发鉴权。
-
调用
destroy()后,如需继续使用,必须重新调用sdkInit(_:)。
示例:
let globalConfig = TmkTranslationGlobalConfig.Builder()
.setAuth(appId: "your_app_id", secret: "your_app_secret")
.setOnlineAuthContext(
tenantId: "your_tenant_id",
externalUserId: "your_external_user_id",
installId: "your_install_id"
)
.setLogEnabled(true)
.setDiagnosisEnabled(false)
.setNetworkEnvironment(.test)
.build()
TmkTranslationSDK.shared.sdkInit(globalConfig)
verifyAuth(_:)
执行在线/离线鉴权。
public func verifyAuth(_ callback: @escaping AuthCallback)
参数说明:
-
callback-
鉴权回调。
-
成功:
.success(()) -
失败:
.failure(TmkTranslationError)
-
返回值:
- 无返回值。
行为说明:
-
首次调用时会懒初始化网络监听、诊断和鉴权基础设施。
-
在线翻译必须先鉴权成功。
-
verifyAuth(_:)内部会先执行在线鉴权;在线鉴权成功后,如果服务端开启离线能力,会继续尝试 License 获取和离线鉴权,用于记录离线支持状态。 -
verifyAuth(_:)的回调成功/失败只由在线鉴权结果决定;离线开关关闭、License 获取失败或离线鉴权失败都不会导致本次verifyAuth(_:)回调失败。 -
离线翻译建议先鉴权,再通过
isOfflineTranslationSupported()判断当前账号是否支持离线能力。 -
离线翻译并不是完全零前置条件可直接使用:至少需要先成功鉴权一次、离线能力开关已开启、且相关离线模型曾下载成功。
示例:
TmkTranslationSDK.shared.verifyAuth { result in
switch result {
case .success:
print("鉴权成功")
case .failure(let error):
print("鉴权失败: \(error.code) \(error.message)")
}
}
isOfflineTranslationSupported()
查询当前鉴权结果是否支持离线翻译。
public func isOfflineTranslationSupported() -> Bool
返回值:
-
true:当前鉴权上下文支持离线翻译。 -
false:当前账号未开通离线翻译能力,或尚未完成离线鉴权。
建议在 verifyAuth(_:) 成功后再调用。verifyAuth(_:) 成功仅表示在线鉴权成功;如果离线鉴权未成功,当前接口仍可能返回 false。
全局配置 TmkTranslationGlobalConfig
TmkTranslationNetworkEnvironment
SDK 内置环境枚举:
public enum TmkTranslationNetworkEnvironment: String {
case dev
case test
case pre
}
dev仅用于开发调试,对外接入请优先使用test或 Timekettle 指定环境。setNetworkBaseURL(_:)一般只用于联调或特殊接入,不建议线上随意切换。
TmkTranslationGlobalConfig.Builder
public final class Builder {
public init()
public func setAuth(appId: String, secret: String) -> Builder
public func setOnlineAuthContext(tenantId: String? = nil,
externalUserId: String? = nil,
installId: String? = nil) -> Builder
public func setLogEnabled(_ isEnabled: Bool) -> Builder
public func setDiagnosisEnabled(_ isEnabled: Bool) -> Builder
public func setNetworkEnvironment(_ environment: TmkTranslationNetworkEnvironment) -> Builder
public func setNetworkBaseURL(_ url: URL) -> Builder
public func setNetworkBaseURL(_ urlString: String) -> Builder
public func setNetworkTimeout(_ seconds: TimeInterval) -> Builder
public func build() -> TmkTranslationGlobalConfig
}
各接口说明:
setAuth(appId:secret:)
-
appId- 业务鉴权 App ID。
-
secret- 业务鉴权 App Secret。
必填。
setOnlineAuthContext(tenantId:externalUserId:installId:)
-
tenantId- 可选,租户标识。
-
externalUserId-
可选,业务用户 ID。
-
如果传入,则优先级高于
installId。
-
-
installId- 可选,设备/安装实例 ID。
setLogEnabled(_:)
-
true:输出 SDK 控制台日志。 -
false:关闭控制台日志。
setDiagnosisEnabled(_:)
-
true:开启诊断日志与诊断文件采集。 -
false:关闭诊断能力。
setNetworkEnvironment(_:)
- 设置预置环境。
setNetworkBaseURL(_:)
-
设置自定义服务端地址。
-
优先级高于
setNetworkEnvironment(_:)。
setNetworkTimeout(_:)
-
设置所有网络请求的统一超时时间(秒)。
-
作用于鉴权、建房、建通道、语言列表、音色更新等所有网络请求,以及对应的 watchdog 超时。
-
小于等于 0 时忽略,回退默认 15 秒。
build()
- 生成不可变的
TmkTranslationGlobalConfig。