Электронные уведомления больше не выводят приложение на передний план при нажатии на уведомление - PullRequest
0 голосов
/ 24 января 2020

У меня есть электронное приложение, которое просто оборачивает удаленную страницу, добавляя некоторые дополнительные функции. С помощью следующего кода страница загружается и работает. Когда на удаленной странице запускаются некоторые уведомления с использованием API уведомлений, эти уведомления появляются, когда электронное приложение свернуто. Моя проблема в том, что при нажатии на эти уведомления приложение не отображается, как при открытии удаленной страницы в любом другом браузере. Я мог бы проверить это только для Ubuntu 19.10 Linux (Gnome 3).

Любая идея, если мне нужно что-то для этого настроить или это ошибка в Electron / Ubuntu / Gnome?

const {app, shell, BrowserWindow} = require('electron');

let mainWindow;

function createWindow () {
  // Create the browser window.
  mainWindow = new BrowserWindow({
    width: 1024,
    height: 786,
  });

  mainWindow.setMenu(null);
  mainWindow.setTitle('My app – Connecting…');
  mainWindow.loadURL('https://some.url.somwhere');


  // Emitted when the window is closed.
  mainWindow.on('closed', () => {
    mainWindow = null
  })
}

app.on('ready', createWindow);

1 Ответ

1 голос
/ 16 апреля 2020

Во-первых, это НЕ хорошая идея, чтобы обернуть удаленную страницу, если вы действительно не знаете, что делаете, как если бы вы были перенаправлены на вредоносную страницу, на которой у страницы был бы доступ для запуска кода в операционной системе. Я бы посоветовал прочитать this , чтобы убедиться, что вы в безопасности.

Во-вторых, API уведомлений HTML5 (запускается в рендерере) и модуль уведомлений (запускаются в основном) оба делают у вас нет поведения по умолчанию для вывода страницы на передний план при нажатии на уведомление, вы должны добавить это поведение самостоятельно.

Поскольку при загрузке удаленной страницы вы, вероятно, используете модуль уведомлений, следовательно, это будет выполнено следующим образом :

notification = new Notification({title: "Message from: "+result[i].messageFrom,body: messagebody,icon: path.join(__dirname, 'assets','images','icon.png')})
notification.show()


notification.on('click', (event, arg)=>{
    mainWindow.moveTop()
    mainWindow.focus()
})
...