Щелчок правой кнопкой мыши с представлением Webkit - PullRequest
3 голосов
/ 24 января 2010

Я сейчас работаю над проектом в Ruby, который по сути является веб-приложением. Нам нравится формат веб-приложений и некоторые естественные гибкие преимущества, которые мы создаем для Интернета. Однако мы хотим иметь возможность упаковать наше приложение и распространять его в отдельном формате.

В идеале мы хотели бы создать пакет .app для Mac и .exe для Windows, который просто открывает представление Webkit, подключается к нашему серверу и отображает HTML-код, который мы обслуживаем.

Пока не так сложно, хотя это немного выходит за рамки нашего текущего опыта (особенно разработки Windows), но все преодолимо.

Проблема в том, что мы хотели бы включить щелчок правой кнопкой мыши, как вы можете в магазине iTunes (это представление Webkit, в котором есть настраиваемые события для щелчков правой кнопкой мыши). Мы хотим придать нашим щелчкам правой кнопкой мыши особое значение и в нашем приложении, чтобы оно действовало с учетом контекста.

Что мы делаем? С чего мы можем начать?

1 Ответ

2 голосов
/ 24 января 2010

Хотите ли вы сделать это из своего веб-приложения или из нативной части приложения?

Если вы делаете это из приложения Какао, вы можете просто реализовать метод webView: contextMenuItemsForElement: defaultMenuItems: WebUIDelegate и вернуть массив пользовательских NSMenuItem, соответствующих вашим настраиваемым действиям.

Если вы хотите сделать это из самого веб-приложения, вы можете добавить прослушиватель событий для события contextmenu, например:

document.addEventListener("contextmenu", function(event) {
    event.preventDefault();
    console.log("My spiffy custom right click menu here!");
}, false);

Тем не менее, вы должны знать, что если вы используете приведенный выше код в своем веб-приложении, вы не сможете изменить собственное меню правой кнопки мыши в браузере, просто замените его собственным созданным пользователем.

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