Создание и управление электроноподобным Windows из Chrome расширения - PullRequest
1 голос
/ 16 февраля 2020

Добрый день всем!


Я разрабатываю расширение Google Chrome. Архитектура в основном построена на использовании скрипта контента на вкладке Chrome и отдельного главного окна для предоставления базовой c информации управления и пользовательской информации. Расширение должно обеспечивать удобство работы с пользователем, и для этого у меня есть соответствующий список критериев:

  1. Создание главного окна с заданными шириной и высотой, сверху и слева. В некоторых случаях создается модальное окно.
  2. Привлекайте внимание или фокусируйтесь на главном окне для взаимодействия с пользователем.
  3. Неизменяемый размер.
  4. Масштабируется с помощью колесика мыши или кнопок.
  5. Переключить всегда поверх.

Дополнительные критерии. Расширение должно работать должным образом из коробки. Любые хитрые дополнительные настройки не удовлетворяют конечных пользователей. Расширение должно работать должным образом в браузерах, подобных Chromium.


Текущее состояние моего Расширения состоит в том, что я использую Chrome API расширений chrome. windows для создания (1) и фокусировка (2) на главном окне, и chrome .tabs для операций масштабирования (4).

Я знаю, что есть ограничение на использование неизменяемого Chrome windows (3). Похоже, это тупик.

Моя реализация функции Always-on-Top (5), описанная в chrome. windows, не работает. Вот код, который я использую:

chrome.windows.getCurrent({ windowTypes: ['panel'] }, function(window) {
    chrome.windows.update(window.id, { focused: true }, function(w) {
        w.alwaysOnTop = true;
    });
});

console.log сообщает, что w.alwaysOnTop переключается с false на true, но изменений нет, и следующий вызов делает то же самое. Принятый ответ здесь Chrome всплывающее расширение windows всегда сверху говорит о Chrome флажках и т. Д. c, что не подходит для конечных пользователей.


У меня есть некоторая информация о chrome .app.window , он предоставляет хорошие возможности. Но похоже, что разработчики уберут поддержку Chrome приложений. В этой статье Переход от Chrome Apps настоятельно рекомендуется использовать chrome. windows вместо этого, но опять же ни слова о поддержке (3) и (5).


Использование Window.open () не дает никакого эффекта в Chrome Dev 82.0.4056.3. Он просто делает то же самое, что и Chrome. windows. И что-то подсказывает мне, что это не совсем кросс-браузерное решение.


На мой взгляд, Electron BrowserWindow может лучше всего справиться с приведенным выше списком критериев. Я знаю, что Электрон объединяет Хром и Node.js. Но я не могу найти более подробную документацию или соответствующие примеры об этой топи c.

Также в последние дни я немного быстро смотрю на React и Angular возможности. Похоже, Angular больше подходит для Google. Я совершенно новичок в этих рамках.


Итак, я здесь. Любая помощь или подсказки по этой теме c будут очень полезны для моей цели. Заранее спасибо!

...