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();