ФорумРазработкаБраузерные плагины и приложения → Может ли приложение Chrome ловить ссылки?

Может ли приложение Chrome ловить ссылки?

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 17 августа 2015 г. 1:30

    Есть приложение - technobulka/trello-chrome-app [github.com] - по факту, просто сайт в отдельном окне без рамки и шапки (всё то же).
    В нём открыт Trello. Возможно ли как-то ловить ссылки, приходящие в браузер (например, Trello [trello.com] пришло из скайпа) стандартными методами или, хотя бы, с помощью дополнительного расширения?
    В документации похожего не нашёл, но Hangouts определённо умеет кидать фокус на приложение из браузера.

    Высокоуровневое абстрактное говно
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 17 августа 2015 г. 4:46, спустя 3 часа 16 минут 27 секунд

    ссылки нельзя ловить, можно протокол "свой" заебенить. и ссылки с учетом этого протокола хуячить (а OS уже через маппинг протокол => app будет это обрабатывать)

    например technobulka-trello:/c/qwe.

    как вариант - ебануть userscript который будет обрабатывать встречающиеся ссылки с учетом этой фишки.

    то есть у тебя будет:

    1. апп зареганый в системе и смапленый под какой то протокол
    2. юзерскрипт для браузеров
    3. логика для обработки пункта 1. Не занимался этим, ничего не могу подсказать в каком виде вызовы апп происходят и тп.
    Сапожник без сапог
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 17 августа 2015 г. 5:22, спустя 36 минут 5 секунд

    Уже рассматривал протокол, но приложенька для смертных, надо как-то сделать, что бы всё из коробки.
    Юзерскрипт тоже попробовал недавно. Опять же, смертные не умеют в такое и обычный js не умеет в хром.апп.апи.
    Остаётся пилить расширение, которое (как в tampermonkey) будет срабатывать на нужном домене и вызывать приложение с нужным урлом.
    Ещё интересно, надо ли такое вообще? Вот у меня открыта определённая борда по текущем проекту, к примеру. Мне кидают ссыль на карточку в другой борде и, вместо того, что бы мельком посмотреть и закрыть вкладку, у меня заменится борда в приложении. И наоборот - если мне кидают ссыль на карточку в той же борде, в которой я работаю, нахера мне вкладка в браузере?

    Высокоуровневое абстрактное говно
  • ssbb

    Сообщения: 86 Репутация: N Группа: Джедаи

    Spritz 17 августа 2015 г. 6:13, спустя 50 минут 46 секунд

    @technobulka, протокол довольно легко задать, тот же electron умеет из коробки. ну или заюзать что-то отдельное/писать под каждую платформу с нуля.

    Спустя 77 сек.

    Я вот только не совсем уверен, как ловить ссылки без участия браузера. Очевидным кажется решение Открываешь ссылку > браузер > браузер кидает по кастомному протоколу в аппу. Но может есть способ обойти браузер

    ex. adwo/ad3w @ Philippines, Dumaguete
  • ssbb

    Сообщения: 86 Репутация: N Группа: Джедаи

    Spritz 17 августа 2015 г. 6:20, спустя 6 минут 48 секунд

    В голову приходит только фейковый браузер-роутер, который ставишь как дефолтный и он дальше уже направляет url в обычный браузер или твою аппу. Можно поставлять вместе с приложением и дать функцию, что если хочется открывать ссылки на trello в приложении, то ставь вот эту штуку как дефолтный браузер :D

    ex. adwo/ad3w @ Philippines, Dumaguete
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 17 августа 2015 г. 6:27, спустя 7 минут 11 секунд

    @ssbb, в линуксах по-дефолту есть такой роутер, я когда открываю ссылки, например из скайпа, он спрашивает каким аппом это открыть

    + может запомнить

    Спустя 44 сек.

    но это всё не подходит для задумки "все из коробки"

    adw/0
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 17 августа 2015 г. 6:39, спустя 11 минут 46 секунд

    Хуйня какая-то эти протоколы.
    Создал в хроме такоую хрень:

    navigator.registerProtocolHandler(  
        'web+trello',
        'https://trello.com/%s',
        'Trello App'
    );

    Дал разрешение в хроме и в винде. Ссылки обрабатываются... Но.
    Во-первых, по клику на &lt;a href=&quot;web+trello:c/qwe&quot;>qwe&lt;/a> открывается вкладка с адресом <noindex><a href="https://trello.com/web%2Btrello%3A%2Fc%2Fqwe" rel="nofollow">Trello [trello.com]</a></noindex>. Во-вторых, никто не поймёт, чтоweb+trello:c/qwe` - это ссылка и не будет делать её кликабельной.
    В пизду. Внешние ссылки во вкладках будут открываться и не ебёт.

    Высокоуровневое абстрактное говно
  • ssbb

    Сообщения: 86 Репутация: N Группа: Джедаи

    Spritz 17 августа 2015 г. 6:46, спустя 7 минут 9 секунд

    @technobulka, так ты сам поставил обработчик на Trello [trello.com]

    Думаю, что имелись ввиду именно декстопные обработчики - браузер может запускать декстопные аппы, как это делает, например itunes в mac os.

    Спустя 128 сек.

    А, еще как вариант сделать просто расширения браузеру и общаться локально с аппой. Как вариант - аппа поднимает socket-сервер локальный, а браузер шлет ей. Довольно просто и без заморочек получится кроссплатформенно.

    ex. adwo/ad3w @ Philippines, Dumaguete
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 17 августа 2015 г. 9:33, спустя 2 часа 47 минут 11 секунд

    Единственный вариант - расширение. Буду пилить.

    Высокоуровневое абстрактное говно
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 18 августа 2015 г. 1:13, спустя 15 часов 39 минут 50 секунд

    Сделал расширение и ограничил только на _создание_ вкладки и ссылки только на доски и карточки.
    Вот весь код smile :

    chrome.tabs.onCreated.addListener(function(tab) {
        var appID = 'gkcknpgdmiigoagkcoglklgaagnpojed';
    
        if (/:\/\/trello.com\/(b|c)\//.test(tab.url)) {
            // close current tab
            chrome.tabs.remove(tab.id);
    
            // send tab url to app
            chrome.management.launchApp(appID, function() {
                chrome.runtime.sendMessage(appID, tab.url);
            });
        }
    });
    

    А в приложении уже слушаю сообщение и открывают прилетевшую ссылку.

    Спустя 158 сек.

    Кстати, думал в манифесте permissions ограничивает область использования расширения и добавил это:

    "permissions": [
        "tabs",
        "management",
        "https://trello.com/*"
    ],
    

    Но всё равно расширение работало на всех вкладках. Не совсем понял, что в доках написано по этому поводу.

    Высокоуровневое абстрактное говно
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 6 ноября 2015 г. 5:39, спустя 80 дней 5 часов 26 минут

    Макоёбы, вы уже обновились до El Capitan? Какой-то юзер приложеньки пишет, что драг-н-дроп не пашет.
    @Sinkler, можешь проверить?

    Высокоуровневое абстрактное говно
  • Sinkler

    Сообщения: 8083 Репутация: N Группа: в ухо

    Spritz 6 ноября 2015 г. 6:17, спустя 37 минут 24 секунды

    Макоёбы, вы уже обновились до El Capitan? Какой-то юзер приложеньки пишет, что драг-н-дроп не пашет.
    @Sinkler, можешь проверить?

    @technobulka, по точечке перемещение? работает вроде

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 6 ноября 2015 г. 6:22, спустя 5 минут 3 секунды

    @technobulka, по точечке перемещение? работает вроде

    @Sinkler, да, по ней. Значит юзер - рукожоп. Пусть сам ебётся со своей проблемой)

    Высокоуровневое абстрактное говно

Пожалуйста, авторизуйтесь, чтобы написать комментарий!