Files
youle_app_ohos/domain_resource/src/main/ets/config/AppConfig.ets
T
lanterngamescnandClaude Opus 4.8 c39d8eb400 refactor(config): 七牛/微信密钥外置——AK/SK+微信AppID 入本地 app_config, domain/bucket 走远程配置
- app_config.json + AppConfig: qiniu_access_key/qiniu_secret_key/wechat_app_id/wechat_app_secret(扁平snake_case)
- RemoteConfig.VersionFields + audio_domain/audio_bucket(4层可携带), VersionDecision + audioDomain/audioBucket
- VersionResolver.resolve 复用 pickStr 解析 audioDomain/audioBucket(4层逐级回退)
- QiniuToken.uploadToken(accessKey,secretKey,bucket) 改传参,去掉硬编码常量
- AudioProvider.doUpload: AK/SK取本地配置, domain/bucket取远程配置(cfg.resolve), URL用远程domain
- WeChatApi.configure(appId) 注入AppID(去WX_APP_ID常量), EntryAbility.onCreate 从配置注入
- 更新 QiniuToken 单测传参

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 19:12:43 +08:00

81 lines
2.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 本地配置(契约 §4.2,框架 §8.2)。
*
* Android 用"目录名编码",本平台改为随包内置 rawfile/app_config.jsonKV),
* 只要提供同名配置值即可,H5 完全无感知。本仓库实测值见 rawfile/app_config.json。
*/
/** 本地配置(全键,§4.2)。 */
export interface AppConfig {
/** 代理商 ID(分层匹配 key)。 */
agent: string;
/** 渠道 ID(分层匹配 key)。 */
channel: string;
/** 资源解压父目录名。 */
gamedir: string;
/** 资源解压后的游戏目录名(大厅入口所在,通常 gamehall)。 */
gamestart: string;
/** App 版本号(与远程 app_version 比较)。 */
appversion: string;
/** 市场 ID(分层匹配 key;也经桥 getmarketname 暴露 H5)。 */
market: string;
/** 游戏 ID(空时回退用 version.xml game id)。 */
gameid: string;
/** 大厅 H5 远程地址;空 → 本地 file:// 加载。 */
weburl: string;
/** 远程配置地址('-'→'/' 后拼 .txt)。 */
gameconfig: string;
/** 业务自定义值(经桥 getOther/getothername 暴露 H5)。 */
other: string;
/** 推广/邀请码(写入 app_data.js 的 app_invitationcode)。 */
tuiguang: string;
/** 七牛 AccessKey(录音上传 token 签名;随包内置,不写死在源码)。 */
qiniuAccessKey: string;
/** 七牛 SecretKey(录音上传 token 签名)。 */
qiniuSecretKey: string;
/** 微信开放平台 AppIDWeChatApi 创建 WXApi)。 */
wechatAppId: string;
/** 微信开放平台 AppSecret(当前端侧不消费,登录走 code+服务端;留位避免硬编码)。 */
wechatAppSecret: string;
}
/** 解析中间体(字段全可选,用于从 JSON 归一化)。 */
export interface AppConfigRaw {
agent?: string;
channel?: string;
gamedir?: string;
gamestart?: string;
appversion?: string;
market?: string;
gameid?: string;
weburl?: string;
gameconfig?: string;
other?: string;
tuiguang?: string;
qiniu_access_key?: string;
qiniu_secret_key?: string;
wechat_app_id?: string;
wechat_app_secret?: string;
}
/** 把可选解析体归一化为完整 AppConfig(缺失键 → 空串)。 */
export function normalizeConfig(raw: AppConfigRaw): AppConfig {
return {
agent: raw.agent ?? '',
channel: raw.channel ?? '',
gamedir: raw.gamedir ?? '',
gamestart: raw.gamestart ?? '',
appversion: raw.appversion ?? '',
market: raw.market ?? '',
gameid: raw.gameid ?? '',
weburl: raw.weburl ?? '',
gameconfig: raw.gameconfig ?? '',
other: raw.other ?? '',
tuiguang: raw.tuiguang ?? '',
qiniuAccessKey: raw.qiniu_access_key ?? '',
qiniuSecretKey: raw.qiniu_secret_key ?? '',
wechatAppId: raw.wechat_app_id ?? '',
wechatAppSecret: raw.wechat_app_secret ?? '',
};
}