接入桌面壳单实例唤醒
Tauri 桌面壳启用 single-instance 插件 重复启动只唤醒并聚焦已有主窗口 禁止把第二实例参数透传给 H5 补充单实例检查测试和架构文档
This commit is contained in:
@@ -134,6 +134,8 @@ const requiredPermissions = [
|
||||
];
|
||||
const requiredBuildCommands = ['host_bridge_request'];
|
||||
const requiredMainSnippets = [
|
||||
'tauri_plugin_single_instance::init',
|
||||
'resolve_desktop_single_instance_action',
|
||||
'tauri_plugin_clipboard_manager::init()',
|
||||
'TrayIconBuilder::with_id',
|
||||
'register_desktop_tray(app)',
|
||||
@@ -216,6 +218,21 @@ if (!cargoManifest.includes('features = ["tray-icon"]')) {
|
||||
throw new Error('desktop shell must enable the Tauri tray-icon feature');
|
||||
}
|
||||
|
||||
if (!cargoManifest.includes('tauri-plugin-single-instance = "2.4.2"')) {
|
||||
throw new Error('desktop shell must depend on tauri-plugin-single-instance');
|
||||
}
|
||||
|
||||
if (
|
||||
main.indexOf('tauri_plugin_single_instance::init') >
|
||||
main.indexOf('tauri_plugin_clipboard_manager::init()')
|
||||
) {
|
||||
throw new Error('desktop shell must register the single-instance plugin first');
|
||||
}
|
||||
|
||||
if (main.includes('single-instance",') || main.includes('"single-instance"')) {
|
||||
throw new Error('desktop shell must not emit secondary-instance argv to H5');
|
||||
}
|
||||
|
||||
const icon = fs.readFileSync(iconPath);
|
||||
if (icon.length < 10000) {
|
||||
throw new Error('desktop shell icon must use a real brand asset');
|
||||
|
||||
Reference in New Issue
Block a user