Электрон: перетащите вкладку в другое открытое окно - PullRequest
0 голосов
/ 13 июня 2018

Я создаю электронное приложение, похожее на Google Chrome, с несколькими динамическими вкладками для разных страниц.Приложение также поддерживает несколько открытых окон.Я хочу иметь возможность перетаскивать вкладки между этими окнами.Я уже знаю, как отправлять сообщения между моими окнами с помощью ipcRenderer, но я сталкиваюсь с несколькими препятствиями:

1) Я не могу перетащить элемент html за пределы окна.Как я могу перетащить вкладку (или что-то, что выглядит идентично) за пределы окна?

Я нашел обсуждение на форумах Atom, где кто-то утверждал, что ему удалось этого достичь,но не уточняйте как.Они утверждают, что «собственным перетаскиванием HTML5 в сочетании с обменом сообщениями IPC было решение проблемы».Кто-то еще ссылается на пример GitHub, приведенный ниже, но с тех пор этот пример был удален.

2) Как определить, когда вкладка перетаскивается в другое открытое окно (мышь отпущена в другом окне)?

Опять же, обсуждение предполагает, что я использую сообщения IPC, чтобы сделать это, но я не нашел способа получить идентификатор окна, на котором вы отпускаете мышь.

Редактировать:

Я нашелрешение проблемы 1. Упомянутое обсуждение было правильным, и с помощью стандартного поведения перетаскивания HTML5 удалось создать желаемый эффект.Выпуск 2 все еще ставит меня в тупик.Я понимаю концепцию оповещения всех других открытых окон с помощью сообщения IPC для подготовки к входящему перетаскиванию, но я все еще не уверен, как получить идентификатор окна и позицию, на которую вы его перетащили, чтобы вы могли отправить информацию вкладки направильное место.

1 Ответ

0 голосов
/ 24 августа 2019

Я знаю, что это немного старо.но вместо перетаскивания вкладки в новое окно, как насчет контекстного меню на вкладке с [Отправить в окно].

с использованием, например, React (не то, что вам нужно), вы могли бы JSON.stringify данные, которые вы использовали для визуализации вкладки, отправки ее в дочернее окно, JSON.parse ее и визуализации в новой вкладке дочернего окна.

Не совсем эффект перетаскивания, нотот же конечный результат.

Для связи между окнами: https://medium.com/@kahlil/how-to-communicate-between-two-electron-windows-166fdbcdc469

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...