Добрый день всем!
Я разрабатываю расширение Google Chrome. Архитектура в основном построена на использовании скрипта контента на вкладке Chrome и отдельного главного окна для предоставления базовой c информации управления и пользовательской информации. Расширение должно обеспечивать удобство работы с пользователем, и для этого у меня есть соответствующий список критериев:
- Создание главного окна с заданными шириной и высотой, сверху и слева. В некоторых случаях создается модальное окно.
- Привлекайте внимание или фокусируйтесь на главном окне для взаимодействия с пользователем.
- Неизменяемый размер.
- Масштабируется с помощью колесика мыши или кнопок.
- Переключить всегда поверх.
Дополнительные критерии. Расширение должно работать должным образом из коробки. Любые хитрые дополнительные настройки не удовлетворяют конечных пользователей. Расширение должно работать должным образом в браузерах, подобных 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 будут очень полезны для моей цели. Заранее спасибо!