接入原生壳应用角标能力

新增 HostBridge app.setBadgeCount 契约和 H5 能力门控

Expo 壳按平台声明能力并在 iOS 调用系统角标 API

Tauri 壳通过主窗口设置任务栏角标并校验 payload

补齐角标能力测试、漂移检查和架构文档
This commit is contained in:
2026-06-18 01:50:15 +08:00
parent 910625d5e1
commit 6b39bdbe19
15 changed files with 336 additions and 19 deletions

View File

@@ -8,10 +8,12 @@ import type {
HostBridgeMethod,
HostBridgeRuntimeResult,
OpenExternalUrlPayload,
SetBadgeCountPayload,
ShareOpenPayload,
} from '../../../packages/shared/src/contracts/hostBridge';
import {
isHostBridgeCapability,
normalizeHostBridgeBadgeCount,
normalizeHostBridgeExternalUrl,
} from '../../../packages/shared/src/contracts/hostBridge';
import type {
@@ -87,6 +89,8 @@ export type HostAppTitleRequest = {
title: string;
};
export type HostAppBadgeCountRequest = SetBadgeCountPayload;
export type HostShareOpenRequest = ShareOpenPayload;
export type HostExternalUrlRequest = OpenExternalUrlPayload;
@@ -740,3 +744,23 @@ export async function setHostAppTitle({ title }: HostAppTitleRequest) {
return false;
}
}
export async function setHostAppBadgeCount({
count,
}: HostAppBadgeCountRequest) {
const normalizedCount = normalizeHostBridgeBadgeCount(count);
if (
normalizedCount === null ||
!canUseNativeHostCapability('app.setBadgeCount')
) {
return false;
}
try {
return await requestNativeHostBoolean('app.setBadgeCount', {
count: normalizedCount,
});
} catch {
return false;
}
}