接入原生壳应用角标能力
新增 HostBridge app.setBadgeCount 契约和 H5 能力门控 Expo 壳按平台声明能力并在 iOS 调用系统角标 API Tauri 壳通过主窗口设置任务栏角标并校验 payload 补齐角标能力测试、漂移检查和架构文档
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user