Как добавить ярлык на рабочий стол для URL, игнорируя манифест веб-приложения?

Цель: создание ярлыка на рабочем столе, который открывает https://news.google.com/news/i#0 , игнорируя содержащийся в нем манифест веб-приложения, который в противном случае «заменяет» сохраненный ярлык на http://news.google.com/news . ?sapa=1 и с "display": "standalone".

Раньше у меня это работало на старом телефоне Android перед заменой/обновлением.

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

Использование https://news.google.com/news/i#0 обеспечивает временный успешный обходной путь. Однако я не могу найти успешный способ добавить ссылку для этого на главный экран. Параметр «Добавить на главный экран» в Chrome вместо этого сохраняет ссылку на http://news.google.com/news?sapa=1 — и таким образом, что он открывается как веб-приложение, а не как веб-страница в Chrome. :

В настольной операционной системе это не проблема. (Создайте ярлык, введите нужный URL-адрес, готово.)

Попытка 1: предоставить мой собственный манифест

Поэтому я создал свой собственный манифест, отредактировав https://news.google.com/news/ui/resources/json/manifest.json , чтобы изменить start_urlатрибут на https://news.google.com/news/i#0, а displayатрибут с standaloneна browser. Затем я создал свою собственную HTML-страницу, которая просто содержала приведенное ниже, а затем разместила обе на локальном веб-сервере:

<html>
        <head>
                <Title>Google News</Title>
                <link rel="manifest" href="/news/manifest.json"/>
        </head>
        <body>
                Test
        </body>
</html>

Однако это не работает: несмотря на то, что ярлык сохраняется с нужным именем и значком, он ссылается на мою собственную HTML-страницу, а не на указанный файл start_url. К сожалению, похоже, что междоменные URL-адреса не разрешены в соответствии с намерением манифеста - в соответствии с https://github.com/w3c/manifest/issues/183 и https://github.com/w3c/manifest/issues/196 . .

Попытка 1b: веб-сайт MITM

В пределах моей собственной локальной сети я решил, что могу попытаться использовать посредника (MITM) на веб-сайте, чтобы временно предоставить желаемый человек, который можно использовать для добавления на домашний экран. К сожалению, веб-сайт использует здесь HSTS , что соответствующим образом блокирует попытку.

В любом случае - это слишком много работы для того, что должно быть простым усилием.

Попытка 2: закладка виджета

К сожалению, похоже, что виджет закладок 1x1 был удален в Chrome 48, согласно https://productforums.google.com/forum/#!topic/chrome/Ikn2YhvT98s . Предлагаемый обходной путь — использовать функцию «Добавить на главный экран» в Chrome. Перейти к 10 / см. начало.

Попытка 3. Используйте браузер «Интернет» по умолчанию.

К сожалению, использование «Добавить ярлык на главный экран» в браузере «Интернет» по умолчанию дает тот же результат, что и Chrome.

Совет 4. Используйте собственное приложение или виджет

Вероятно, можно было бы написать и установить пользовательское приложение или виджет, который можно было бы добавить на главный экран для достижения цели.

Или не изобретать велосипед, а использовать существующий. Некоторые возможности:

Заключение

Как кто-то может создать ярлык на рабочем столе для произвольного URL-адреса, игнорируя предоставленный манифест веб-приложения?

Ответы (1)

Чтобы обойти манифест веб-приложения любого сайта

  1. Скопируйте следующий код

    JavaScriptx:<!-- NOTE: JavaScriptx is NOT A TYPO!!! -->
    if (meta=document.querySelector('meta[name="mobile-web-app-capable"]')) meta.parentNode.removeChild(meta);
    if (mani=document.querySelector('link[rel="manifest"]')) mani.parentNode.removeChild(mani);
    void(0)
    
  2. Откройте Chrome на Android

  3. Перейдите по URL-адресу, который вы хотите добавить на главный экран, например:

  4. Вставьте скопированный ранее код в адресную строку Chrome.

  5. Прокрутите до начала вставленного кода

    • (Несколько раз коснитесь и перетащите текст на панели местоположения, чтобы прокрутить его.
  6. Коснитесь после xвJavaScriptx

  7. Backspace x, используя любую Backspaceкнопку на экранной клавиатуре

  8. Нажмите Goна экранной клавиатуре (чтобы подтвердить/принять URL-адрес и запустить его)

JavaScript должен выполняться на странице и ничего не делать, это нормально.

Примечание. Если страница по какой- либо причине перезагрузится , вам потребуется снова запустить JavaScript.

Теперь попробуйте снова добавить эту страницу на главный экран.

Чтобы добавить URL-адрес на главный экран

  1. Коснитесь экранного «меню с тремя точками» Chrome (справа от строки адреса, рядом с кнопкой «количество открытых вкладок») или используйте кнопку аппаратного меню.
  2. Нажмите Добавить на главный экран.

Это должно закончиться как обычная ссылка Chrome, а не как веб-приложение, поскольку JavaScript отключил предпочтение страницы для «режима веб-приложения».

Вопросы/комментарии?

Почему вы заставили меня скопировать JavaScriptxтолько для того, чтобы убрать x позже?

Потому что в моем тестировании на моем телефоне, когда я вставлял что-либо JavaScript:в начале, Chrome отрывал эту часть, оставляя после нее только текст.