Files
Genarrative/apps/mobile-shell/src/shell/network.ts
T
kdletters bc3b464349 统一三端桥接层职责命名
微信小程序 host-bridge 与 shell 文件改为职责命名

移动壳 host-bridge 与 shell 文件改为职责命名

更新原生壳结构门禁、微信 smoke 和宿主壳文档
2026-06-18 17:48:03 +08:00

41 lines
1.1 KiB
TypeScript

import * as Network from 'expo-network';
import {
type NetworkStatusResult,
normalizeHostBridgeConnectionType,
} from '../../../../packages/shared/src/contracts/hostBridge';
export function normalizeMobileNetworkStatus(
state: Network.NetworkState,
): NetworkStatusResult {
const nativeType = state.type;
const connectionType = normalizeHostBridgeConnectionType(nativeType);
return {
isConnected:
typeof state.isConnected === 'boolean'
? state.isConnected
: connectionType !== 'none' && connectionType !== 'unknown',
isInternetReachable:
typeof state.isInternetReachable === 'boolean'
? state.isInternetReachable
: null,
connectionType,
...(nativeType ? { nativeType } : {}),
};
}
export async function getMobileNetworkStatus() {
return normalizeMobileNetworkStatus(await Network.getNetworkStateAsync());
}
export function subscribeMobileNetworkStatus(
listener: (status: NetworkStatusResult) => void,
) {
const subscription = Network.addNetworkStateListener((state) => {
listener(normalizeMobileNetworkStatus(state));
});
return () => subscription.remove();
}