открыть несколько URI одним щелчком мыши (аналогично настольному Firefox «открыть все во вкладках»)

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

Альтернативный вариант — очень хорошее приложение для быстрого набора, которое поможет мне отследить, какая закладка была открыта последней, чтобы я мог вручную просмотреть список из 20+ закладок.

Проблемы, которые я пытаюсь решить:

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

Я уже пробовал синхронизацию Firefox, Dolphin Connect, XMarks и несколько других решений, и ни одно из них не делает то, что мне нужно.

Ответы (2)

Это не идеальное решение, но оно должно вам помочь. Следование предварительно отформатированному тексту представляет собой очень простой сценарий, который может открыть серию закладок, помеченных определенным ключевым словом. Каждая закладка будет открыта в браузере, выбранном по умолчанию для типа URL-адреса закладки.

Скрипт

#!/система/бин/ш

список=/данные/медиа/0/bms_list;
ключевое слово = "$1";
браузер = "$2";
mkfifo $ список;

# принудительно остановить браузер по умолчанию
[[ "$browser" ]] && am force-stop "$browser";

# получить URL закладок, связанных с заданным ключевым словом
запрос содержимого --uri content://org.mozilla.firefox.db.browser/bookmarks --projection url --where "keyword='$keyword'" | busybox sed 's/.*url=//g' > $list &

# Возьмите каждый URL-адрес из сохраненного вывода и запустите его с помощью браузера по умолчанию.
при чтении строки; делать  
    am start -a android.intent.action.VIEW -d "$line" --activity-exclude-from-recents;
    спать 1;
сделано < $ список
рм $список;

Предпосылки

Вот жесткие условия для работы скрипта:

  • У вас должен быть root-доступ 1 .
  • Busybox должен быть установлен и доступен в переменной PATH.
  • Требуется браузер Firefox для Android . Это необходимо, потому что Chrome не поддерживает теги, папки закладок не видны через поставщика контента Chrome, и мне было бы больно, если бы я начал анализировать файл закладок Chrome, доступный в его частном каталоге. Я не тестировал другие браузеры, так что это еще одна причина, по которой я сделал Firefox обязательным условием.

    Следует отметить, что вы не обязаны использовать браузер Firefox в качестве повседневного драйвера , а только создавать и хранить в нем закладки, чтобы они сортировались по определенным ключевым словам. Браузер Firefox не поддерживает несколько ключевых слов для закладок, начиная с версии 44.0.2.

    Чтобы добавить ключевое слово: добавьте ссылку в закладки в Firefox, перейдите на вкладку «Закладки», нажмите и удерживайте закладку → «Изменить» → добавьте ключевое слово в разделе «Ключевое слово».

    Я не тестировал ключевое слово, содержащее пробел, поэтому, если скрипт не работает с ключевым словом, содержащим пробел(ы), замените пробел(ы) на _ в своих закладках, а затем попробуйте сценарий.

  • Я тестировал это решение только с Firefox и Chrome, поэтому не могу гарантировать, что оно будет работать с любым браузером. Однако здравый смысл подсказывает, что если это браузер для случайного просмотра, он должен быть зарегистрирован для намерения, имеющего тип данных URL, поэтому у браузера не должно возникнуть проблем с моим скриптом.

    Примечание. По какой-то причине Firefox не смог обработать серию закладок через некоторое время и аварийно завершил работу. (На самом деле он каждый раз вылетал.) С другой стороны, Chrome v45.0.2564.95 ни разу не вылетал.

Вот как можно выполнить скрипт после его сохранения в папке /sdcard с расширением .sh :

Запуск скрипта

Установите приложение эмулятора терминала и выполните:

su -c 'sh /sdcard/ФАЙЛ БРАУЗЕР КЛЮЧЕВЫХ СЛОВ'

Пример:

su -c 'sh /sdcard/bms_launch.sh Stack_Exchange com.android.chrome' # это запустит все закладки, помеченные ключевым словом Stack_Exchange в браузере по умолчанию com.android.chrome

Что нужно знать:

  • ФАЙЛ : имя файла скрипта, например: bms_launch.sh
  • KEYWORD : ключевое слово, по которому все связанные закладки должны быть найдены и запущены в браузере по умолчанию.
  • БРАУЗЕР : имя пакета вашего браузера по умолчанию. Чтобы узнать имя пакета, следуйте разделу Просмотр полного имени пакета приложения?

    Примечание: нет необходимости указывать имя пакета браузера по умолчанию. Я использовал его, потому что мне пришлось принудительно остановить Chrome, поскольку Chrome вызывал некоторые осложнения без принудительной остановки.

Удобное исполнение

Как вы будете выполнять этот скрипт на своем устройстве, решать вам. Я могу порекомендовать эти два метода. Любого из них будет достаточно.


1 Необходим рут-доступ, потому что я не знаю, как динамически генерировать (и легко анализировать) список закладок из какого-либо браузера . Даже если бы у меня был такой список, я бы не смог продолжить, если бы не знал, что эти закладки можно сортировать с помощью тега или ключевого слова. Вот почему я выбрал Firefox и root-доступ.

Зависимость от одного ключевого слова может вызвать неудобства, но я дал вам (возможно, хорошую) идею. Если предпочитаемый вами браузер поддерживает несколько тегов/ключевых слов для закладок, у вас не должно возникнуть проблем с настройкой моего скрипта в соответствии с вашими потребностями.

Вместо того, чтобы хранить закладки в браузере, вы можете сохранить ссылки на главном экране, а затем поместить их все в папку. Это будет быстрый доступ, и я никогда не слышал, чтобы браузер Android делал это. Если вы слышали о Tasker, вы, вероятно, могли бы настроить что-то, что вы хотите

Чувак, это классная идея. Способ начать свою карьеру на Android Enthusiasts!
Я не уверен, что понимаю... если я помещу все закладки в папку на рабочем столе, это позволит мне открыть их все одним щелчком мыши? Спасибо.
Вот где Таскер придет
Было бы полезно, если бы вы четко и подробно объяснили нам, как здесь можно использовать Tasker.