Ziel: Erstellen Sie eine Desktop-Verknüpfung, die https://news.google.com/news/i#0 öffnet , wobei das darin enthaltene Web-App-Manifest ignoriert wird, das andernfalls die gespeicherte Verknüpfung zu http://news.google.com/news „überschreibt“. ?sapa=1 und mit "display": "standalone"
.
Ich hatte dies zuvor auf einem älteren Android-Telefon vor einem Austausch / Upgrade.
Vor dem Upgrade konnte ich lange auf einzelne Artikel drücken und diese in neuen Tabs öffnen – sowie Linkverknüpfungen zu bestimmten Artikeln kopieren, ebenso wie alle anderen Features und Funktionen, die Chrome zu bieten hat. Hier ist nur eine Teilauswahl von Referenzen anderer Benutzer, die sich darüber beschweren:
Die Verwendung von https://news.google.com/news/i#0 bietet eine vorübergehende erfolgreiche Problemumgehung. Ich kann jedoch keinen erfolgreichen Weg finden, einen Link dafür zu meinem Startbildschirm hinzuzufügen. Die Option „Zum Startbildschirm hinzufügen“ in Chrome speichert stattdessen einen Link zu http://news.google.com/news?sapa=1 – und zwar so, dass er als Webanwendung statt als Webseite in Chrome geöffnet wird :
Auf einem Desktop-Betriebssystem wäre dies kein Problem. (Verknüpfung erstellen, gewünschte URL eingeben, fertig.)
Also habe ich mein eigenes Manifest erstellt und https://news.google.com/news/ui/resources/json/manifest.json bearbeitet , um das start_url
Attribut in https://news.google.com/news/i#0
und das display
Attribut von standalone
in zu ändern browser
. Ich habe dann meine eigene HTML-Seite erstellt, die einfach das Folgende enthielt - und dann beides selbst auf einem lokalen Webserver gehostet:
<html>
<head>
<Title>Google News</Title>
<link rel="manifest" href="/news/manifest.json"/>
</head>
<body>
Test
</body>
</html>
Dies funktioniert jedoch nicht: Obwohl die Verknüpfung mit dem gewünschten Namen und Symbol gespeichert ist, verweist sie auf meine selbst gehostete HTML-Seite und nicht auf die angegebene start_url
. Leider scheint es, dass domänenübergreifende URLs gemäß der manifesten Absicht nicht zulässig sind – gemäß https://github.com/w3c/manifest/issues/183 und https://github.com/w3c/manifest/issues/196 .
Innerhalb der Grenzen meines eigenen lokalen Netzwerks dachte ich, ich könnte versuchen, die Website per Man-in-the-Middle (MITM) zu manipulieren, um vorübergehend ein gewünschtes Manfiest zur Ergänzung des Startbildschirms bereitzustellen. Leider verwendet die Website hier HSTS , was den Versuch entsprechend blockiert.
Unabhängig davon - das ist viel zu viel Arbeit für das, was eine einfache Anstrengung sein sollte.
Leider sieht es so aus, als ob das 1x1-Lesezeichen-Widget in Chrome 48 gemäß https://productforums.google.com/forum/#!topic/chrome/Ikn2YhvT98s entfernt wurde . Die vorgeschlagene Problemumgehung besteht darin, die Funktion „Zum Startbildschirm hinzufügen“ in Chrome zu verwenden. Gehe zu 10 / siehe Anfang.
Leider führt die Verwendung von „Verknüpfung zum Startbildschirm hinzufügen“ im standardmäßig bereitgestellten „Internet“-Browser zu demselben Ergebnis wie Chrome.
Könnte wahrscheinlich eine benutzerdefinierte Anwendung oder ein Widget schreiben und installieren, das zum Startbildschirm hinzugefügt werden könnte, um das Ziel zu erreichen.
Oder erfinden Sie das Rad nicht neu und verwenden Sie ein vorhandenes. Einige Möglichkeiten:
Wie kann jemand eine Desktop-Verknüpfung zu einer beliebigen URL erstellen und dabei ein bereitgestelltes Web-App-Manifest ignorieren?
Kopieren Sie den folgenden Code
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)
Öffnen Sie Chrome auf Android
Gehen Sie zu der URL, die Sie Ihrem Startbildschirm hinzufügen möchten, zum Beispiel:
Fügen Sie den zuvor kopierten Code in die Standortleiste von Chrome ein
Scrollen Sie zum Anfang des eingefügten Codes
Berühren Sie nach dem x
inJavaScriptx
Führen Sie die Rücktaste aus x
, indem Sie verwenden, wie auch immer Ihre BackspaceSchaltfläche auf der Bildschirmtastatur aussieht
Berühren Sie Goauf der Bildschirmtastatur (um die URL zu bestätigen/akzeptieren und auszuführen)
Das JavaScript sollte auf der Seite ausgeführt werden und nichts zu tun scheinen, das ist in Ordnung.
Hinweis: Wenn die Seite aus irgendeinem Grund neu geladen wird , müssen Sie das JavaScript erneut ausführen.
Versuchen Sie nun, diese Seite erneut zum Startbildschirm hinzuzufügen.
Es sollte als normaler Chrome-Link enden, nicht als Web-App, da das JavaScript die Präferenz der Seite für den "Web-App-Modus" zerstört hat.
JavaScriptx
, damit ich später das x zurücksetzen kann?JavaScript:
Denn bei meinen Tests auf meinem Telefon hat Chrome diesen Teil abgerissen, als ich am Anfang irgendetwas mit eingefügt habe , und nur den Text danach hinterlassen.