9b7da18879
新增 HostBridge 原生宿主契约和 H5 native_app transport 新增 Expo React Native 移动壳并收紧 WebView 外链边界 新增 Tauri 桌面壳并用 capability 收口受控命令 更新宿主壳方案、文档索引和共享记忆
26 lines
836 B
TypeScript
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();
|
|
}
|