收口移动外链桥接系统调用

将 Expo app.openExternalUrl 的 Linking 调用收口到 navigation 模块

让移动 dispatch 只委托外链请求载荷

同步移动壳配置门禁和共享记忆
This commit is contained in:
2026-06-19 23:39:00 +08:00
parent 582fb20347
commit 2f37a143f1
4 changed files with 12 additions and 13 deletions
@@ -1,5 +1,3 @@
import * as Linking from 'expo-linking';
import { type HostBridgeRequest } from '../../../../packages/shared/src/contracts/hostBridge';
import {
captureImageFile,
@@ -56,10 +54,7 @@ export async function dispatchMobileHostBridgeRequest(
case 'appearance.getColorScheme':
return ok(request, getMobileAppearanceColorScheme());
case 'app.openExternalUrl':
return ok(
request,
await openMobileHostBridgeExternalUrl(Linking, request.payload),
);
return ok(request, await openMobileHostBridgeExternalUrl(request.payload));
case 'app.reloadWebView':
return ok(request, reloadMobileHostBridgeWebView(navigation));
case 'network.status':
@@ -1,3 +1,5 @@
import * as Linking from 'expo-linking';
import {
type HostBridgeError,
type NavigateNativePagePayload,
@@ -17,7 +19,6 @@ import {
} from './protocol';
export async function openMobileHostBridgeExternalUrl(
navigator: MobileShellExternalNavigator,
payload: unknown,
) {
const externalUrlPayload = normalizeHostBridgeExternalUrlPayload(
@@ -28,7 +29,7 @@ export async function openMobileHostBridgeExternalUrl(
}
if (
!(await openMobileShellExternalNavigation(navigator, externalUrlPayload.url))
!(await openMobileShellExternalNavigation(Linking, externalUrlPayload.url))
) {
throw {
code: 'host_error',