minigame-std
Version:
Cross-platform standard library for WeChat minigame and web browsers with unified APIs for crypto, fs, fetch, storage, and more.
52 lines (49 loc) • 1.49 kB
TypeScript
/**
* 网络状态,混合了 web 和小游戏环境。
* @since 1.0.9
* @example
* ```ts
* import { getNetworkType, type NetworkType } from 'minigame-std';
*
* const networkType: NetworkType = await getNetworkType();
* if (networkType === 'wifi') {
* console.log('当前使用 WiFi 网络');
* }
* ```
*/
type NetworkType = 'wifi' | 'slow-2g' | '2g' | '3g' | '4g' | '5g' | 'unknown' | 'none';
/**
* 获取网络状态。
* @returns 根据浏览器支持情况不同,返回值可能为 `wifi` | `none` | `unknown` | `slow-2g` | `2g` | `3g` | `4g`
* @since 1.0.9
* @example
* ```ts
* const networkType = await getNetworkType();
* console.log('当前网络类型:', networkType);
* if (networkType === 'none') {
* console.log('当前无网络连接');
* }
* ```
*/
declare function getNetworkType(): Promise<NetworkType>;
/**
* 监听网络状态变化。
* @param listener - 网络状态变化的回调函数。
* @returns 返回一个函数,调用该函数可以移除监听器。
* @since 1.0.9
* @example
* ```ts
* const removeListener = addNetworkChangeListener((type) => {
* console.log('网络状态变化:', type);
* if (type === 'none') {
* console.log('网络已断开');
* }
* });
*
* // 移除监听器
* removeListener();
* ```
*/
declare function addNetworkChangeListener(listener: (type: NetworkType) => void): () => void;
export { addNetworkChangeListener, getNetworkType };
export type { NetworkType };