M3 补全:移除 EchoSample 样板 + getcompareCode 接版本决策 + app_gamename
- 移除 EchoSampleProvider(组装根/导出/文件):M3 全部 Provider 已就位, getTime 由 DeviceProvider 提供;样板回显仅 M1 测试页用,生产无依赖 - getcompareCode:启动期 StartupOrchestrator 把网络 App 版本(VersionDecision.appVersion) 存 KvStore(KV_KEY_NET_APP_VERSION),DeviceProvider 同步读出与本地 config.appversion 比较, 本地>网络→'1' 否则'0'(对齐 Android apputil.code 语义) - app_gamename:VersionXml.parse 解析子 <game name>;ResourceManager.localGameName 暴露; AppDataInjector.buildValues 接 gameName 参数;大厅/子游戏两处注入均填入 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
cc5db07ddd
commit
01e4c0e99e
@@ -13,7 +13,8 @@ import { wifiManager } from '@kit.ConnectivityKit';
|
||||
import { BusinessError } from '@kit.BasicServicesKit';
|
||||
import { BridgeController } from 'feature_bridge';
|
||||
import { InboundHandlers, OutboundHandlers, PhoneInfoBean, WifiLevelResp } from 'contracts';
|
||||
import { ConfigManager, AppConfig } from 'domain_resource';
|
||||
import { ConfigManager, AppConfig, KV_KEY_NET_APP_VERSION } from 'domain_resource';
|
||||
import { KvStore } from 'platform';
|
||||
import { Logger } from 'common';
|
||||
import { CapabilityContext, CapabilityProvider } from '../core/CapabilityProvider';
|
||||
|
||||
@@ -22,10 +23,12 @@ export class DeviceProvider implements CapabilityProvider {
|
||||
private readonly log: Logger = Logger.tag('DeviceProvider');
|
||||
private bridge: BridgeController | undefined = undefined;
|
||||
private config: ConfigManager | undefined = undefined;
|
||||
private kv: KvStore | undefined = undefined;
|
||||
|
||||
register(bridge: BridgeController, ctx: CapabilityContext): void {
|
||||
this.bridge = bridge;
|
||||
this.config = ctx.config;
|
||||
this.kv = ctx.kv;
|
||||
|
||||
bridge.registerHandler(InboundHandlers.GetTime, (_d: string, cb: (resp: string) => void) => {
|
||||
cb(Date.now().toString());
|
||||
@@ -43,8 +46,12 @@ export class DeviceProvider implements CapabilityProvider {
|
||||
cb(this.lookupConfig(data));
|
||||
});
|
||||
bridge.registerHandler(InboundHandlers.GetCompareCode, (_d: string, cb: (resp: string) => void) => {
|
||||
// TODO(M3):1=本地 appversion>网络 app_version/0=否,需接 StartupOrchestrator 的版本决策;暂安全返回 '0'
|
||||
cb('0');
|
||||
// 契约:本地 App 版本 > 网络版本 → '1',否则 '0'(对齐 Android apputil.code)。
|
||||
// 网络版本由 StartupOrchestrator 启动期算出存入 KvStore;本地版本为 config.appversion。
|
||||
const localVer: number = parseInt(this.local().appversion, 10);
|
||||
const local: number = isNaN(localVer) ? 0 : localVer;
|
||||
const net: number = this.kv?.getNumber(KV_KEY_NET_APP_VERSION, 0) ?? 0;
|
||||
cb(local > net ? '1' : '0');
|
||||
});
|
||||
bridge.registerHandler(InboundHandlers.GetBattery, (_d: string, _cb: (resp: string) => void) => {
|
||||
this.pushBattery();
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* 示例能力(M2 脚手架)。验证 CapabilityProvider 插件模式可注册并被桥分发,
|
||||
* 对接最小回显 H5(test_echo.html 用 getTime/nativeEcho)。
|
||||
*
|
||||
* ⚠ M3 用真实 Provider(DeviceProvider 等)替换:buildCapabilities() 删除本行即可,
|
||||
* 桥核心与容器零改动。
|
||||
*/
|
||||
import { BridgeController } from 'feature_bridge';
|
||||
import { CapabilityContext, CapabilityProvider } from '../core/CapabilityProvider';
|
||||
|
||||
export class EchoSampleProvider implements CapabilityProvider {
|
||||
readonly name: string = 'echo(sample)';
|
||||
|
||||
register(bridge: BridgeController, ctx: CapabilityContext): void {
|
||||
bridge.registerHandler('getTime', (_data: string, cb: (resp: string) => void) => {
|
||||
cb(Date.now().toString());
|
||||
});
|
||||
bridge.registerHandler('nativeEcho', (data: string, cb: (resp: string) => void) => {
|
||||
cb(data);
|
||||
});
|
||||
ctx.log.i('echo sample registered (getTime/nativeEcho)');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user