Skip to content

Context

概述

如快提供了一系列函数,用于与应用程序上下文进行交互。这些函数包括获取平台信息、搜索框内容管理、以及显示对话框等功能。

引入

typescript
import { getPlatform, getSearchContent, clearSearchContent, watchSearchContent, showDialog } from 'sofast-extensions';

类型定义

OsType

  • 描述: 操作系统类型。
  • 类型: 'windows' | 'macos' | 'linux'

DialogButton

  • 描述: 对话框按钮的配置。

  • 类型:

    typescript
    {
      type: 'primary' | 'shallow' | 'delete';
      text: string;
      onClick?: () => void;
    }

DialogProps

  • 描述: 对话框的配置属性。

  • 类型:

    typescript
    {
      title: string;
      subtitle: string;
      buttons: DialogButton[];
    }

方法

getPlatform

  • 描述: 获取当前运行的操作系统类型。
  • 返回类型: Promise<OsType>
  • 参数: 无

示例代码

typescript
import { getPlatform } from 'sofast-extensions';

async function logPlatform() {
  try {
    const platform = await getPlatform();
    console.log('Current platform:', platform);
  } catch (error) {
    console.error('Failed to get platform:', error);
  }
}

logPlatform();

getSearchContent

  • 描述: 获取当前搜索内容。
  • 返回类型: Promise<string>
  • 参数: 无

示例代码

typescript
import { getSearchContent } from 'sofast-extensions';

async function logSearchContent() {
  try {
    const content = await getSearchContent();
    console.log('Current search content:', content);
  } catch (error) {
    console.error('Failed to get search content:', error);
  }
}

logSearchContent();

clearSearchContent

  • 描述: 清除当前搜索内容。
  • 返回类型: Promise<void>
  • 参数: 无

示例代码

typescript
import { clearSearchContent } from 'sofast-extensions';

async function clearContent() {
  try {
    await clearSearchContent();
    console.log('Search content cleared successfully');
  } catch (error) {
    console.error('Failed to clear search content:', error);
  }
}

clearContent();

watchSearchContent

  • 描述: 监听搜索内容的变化,并在内容变化时调用回调函数。
  • 返回类型: Promise<void>
  • 参数:
    • fn: (content: string) => void:内容变化时的回调函数。

示例代码

typescript
import { watchSearchContent } from 'sofast-extensions';

async function watchContent() {
  try {
    await watchSearchContent((content) => {
      console.log('Search content changed to:', content);
    });
    console.log('Search content watcher set up successfully');
  } catch (error) {
    console.error('Failed to set up search content watcher:', error);
  }
}

watchContent();

showDialog

  • 描述: 显示一个对话框。
  • 返回类型: Promise<void>
  • 参数:
    • props: DialogProps:对话框的配置属性。

示例代码

typescript
import { showDialog } from 'sofast-extensions';

async function showCustomDialog() {
  try {
    const dialogProps: DialogProps = {
      title: 'Confirm Action',
      subtitle: 'Are you sure you want to proceed?',
      buttons: [
        { type: 'primary', text: 'Yes', onClick: () => console.log('Confirmed') },
        { type: 'shallow', text: 'No', onClick: () => console.log('Cancelled') },
        { type: 'delete', text: 'Delete', onClick: () => console.log('Deleted') }
      ]
    };

    await showDialog(dialogProps);
    console.log('Dialog shown successfully');
  } catch (error) {
    console.error('Failed to show dialog:', error);
  }
}

showCustomDialog();

listenEvent

  • 描述: 监听指定类型的窗口事件。
  • 返回类型: Promise<void>
  • 泛型参数:
    • K extends keyof WindowEventMap:事件类型,必须是 WindowEventMap 中的一个有效键。
  • 参数:
    • type: K:事件类型。
    • listener: (this: Window, ev: WindowEventMap[K]) => any:事件监听器函数。
    • options?: boolean | AddEventListenerOptions:可选的事件监听器选项。

示例代码

typescript
import { listenEvent } from 'your-package';

async function setupEventListeners() {
  try {
    await listenEvent('resize', (event) => {
      console.log('Window resized:', event);
    });

    await listenEvent('keydown', (event) => {
      console.log('Key pressed:', event.key);
    }, { passive: true });

    console.log('Event listeners set up successfully');
  } catch (error) {
    console.error('Failed to set up event listeners:', error);
  }
}

setupEventListeners();