plugins
App Instance
查看 Markdown单实例状态与窗口聚焦。
查询当前进程是否为单实例主实例,并尝试把已有主窗口带到前台。
appInstance 只负责单实例状态查询与窗口聚焦,不负责文件锁、配置文件合并或升级迁移。
单实例锁的持有方和释放时机由宿主负责。
| 方法 | 协议命令 | Windows | Android |
|---|---|---|---|
KSM.appInstance.state() | app.singleInstance.state | 支持 | 支持 |
KSM.appInstance.focus() | app.singleInstance.focus | 支持 | 支持 |
app.singleInstance.state 返回 { primary: boolean }。primary 表示当前实例是否
是允许继续运行的主实例;非主实例应尽快退出,不要继续启动第二个主进程。
app.singleInstance.focus 返回 { focused: boolean }。focused 表示宿主是否成功
把主窗口带到前台。
import { KSM } from 'kasumi-bridge';
const { primary } = await KSM.appInstance.state();
if (!primary) {
await KSM.appInstance.focus();
window.close();
}state 默认返回 primary: true,不主动阻止第二进程。focus 只做“请求前台”操作,由操作系统窗口规则决定是否成功。| 现象 | 优先检查 |
|---|---|
| 第二个实例仍能启动 | Windows 互斥量 / Android FLAG_ACTIVITY_SINGLE_TOP 是否实现 |
focus 返回 false | 窗口句柄是否仍然有效,是否被系统置为不可前台 |
评论