Как запретить приложению Electron.net прерывать выключение системы macOS?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как запретить приложению Electron.net прерывать выключение системы macOS?

Сообщение Anonymous »

Я реализовал функцию, при которой приложение вообще не закрывается, а на Mac она просто сворачивает приложение при нажатии на красную кнопку. Я пробовал использовать много способов, но нашел один способ, который работал: ipc вместе с onbeforeunload
Я внедрил JavaScript, как показано ниже

Код: Выделить всё

var jsCode = @"
const { ipcRenderer } = require('electron');

if (window != null) {
window.onbeforeunload = (e) => {
e.returnValue = false;
ipcRenderer.send('minimize-app');
};
}
";

mainWindow.WebContents.OnDomReady += async() =>
{
if (mainWindow != null && !(await mainWindow.IsDestroyedAsync()))
{
await mainWindow.WebContents.ExecuteJavaScriptAsync(jsCode);
}
};
который обрабатывается этим

Код: Выделить всё

Electron.IpcMain.On("minimize-app", async(e) =>
{
Console.WriteLine("Got in here");
Log.Logger.Debug("Got in here");
try
{
if (mainWindow != null && !(await mainWindow.IsDestroyedAsync()))
{
Console.Write("here as well");
Log.Logger.Debug("here as well");
mainWindow.Minimize();
Console.WriteLine("Did this as well");
Log.Logger.Debug("Did this as well");
}
}
catch (Exception ex)
{
Log.Logger.Error(ex, "Error in minimize-app");
}
});
Проблема, с которой я столкнулся, заключается в том, что когда я выключаю систему, она переходит в бесконечный цикл, я думаю, заставляя приложение сворачиваться снова и снова, вместо того, чтобы закрыть его. , что прерывает выключение. Я попробовал добавить

Electron.App.On("app-before-quit")

Но добавление любого кода, связанного с Electron.App.On, просто ломает мое приложение, и я не знаю причины этого. Я подумал, как и в случае с onbeforeunload, есть ли какой-нибудь код JavaScript, который я могу добавить, чтобы все заработало?

Подробнее здесь: https://stackoverflow.com/questions/793 ... m-shutdown
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»