Files
Genarrative/apps/mobile-shell/src/mobileShellUrl.ts
T
kdletters 9b7da18879 新增 Expo 与 Tauri 原生宿主壳
新增 HostBridge 原生宿主契约和 H5 native_app transport

新增 Expo React Native 移动壳并收紧 WebView 外链边界

新增 Tauri 桌面壳并用 capability 收口受控命令

更新宿主壳方案、文档索引和共享记忆
2026-06-17 21:39:34 +08:00

26 lines
836 B
TypeScript

import type {
HostBridgeCapability,
NativeHostPlatform,
} from '../../../packages/shared/src/contracts/hostBridge';
export type MobileShellUrlOptions = {
platform: Extract<NativeHostPlatform, 'ios' | 'android'>;
hostVersion: string;
capabilities: HostBridgeCapability[];
};
export function buildMobileShellUrl(
rawUrl: string,
options: MobileShellUrlOptions,
) {
const url = new URL(rawUrl);
url.searchParams.set('clientRuntime', 'native_app');
url.searchParams.set('clientType', 'native_app');
url.searchParams.set('hostShell', 'expo_mobile');
url.searchParams.set('hostPlatform', options.platform);
url.searchParams.set('hostVersion', options.hostVersion);
url.searchParams.set('bridgeVersion', '1');
url.searchParams.set('hostCapabilities', options.capabilities.join(','));
return url.toString();
}