3 votes

Comment ajouter un raccourci sur le bureau pour une URL, en ignorant le manifeste de la web app ?

Objectif : Avoir un raccourci sur le bureau qui ouvre https://news.google.com/news/i#0 en ignorant le manifeste de l'application web contenue qui, sinon, "remplace" le raccourci sauvegardé dans l'application. http://news.google.com/news?sapa=1 et avec "display": "standalone" .

Je l'avais déjà fait fonctionner sur un ancien téléphone Android avant de le remplacer ou de le mettre à niveau.

Avant la mise à jour, j'étais en mesure d'effectuer une pression longue et d'ouvrir des articles individuels dans de nouveaux onglets - ainsi que de copier des raccourcis de liens vers des articles spécifiques, de même que toutes les autres caractéristiques et fonctionnalités que Chrome a à offrir. Voici une sélection partielle de références d'autres utilisateurs se plaignant de la même chose :

Utilisation de https://news.google.com/news/i#0 fournit une solution de contournement temporaire réussie. Cependant, je n'arrive pas à trouver un moyen efficace d'ajouter un lien vers cette page à mon écran d'accueil. L'option "Ajouter à l'écran d'accueil" dans Chrome enregistre plutôt un lien vers http://news.google.com/news?sapa=1 - et de manière à ce qu'il s'ouvre comme une application web au lieu d'une page web dans Chrome :

Sur un système d'exploitation de bureau, ce ne serait pas un problème. (Créer un raccourci, entrer l'URL désirée, terminé.)

Tentative 1 : Fournir mon propre manifeste

J'ai donc créé mon propre manifeste - en éditant https://news.google.com/news/ui/resources/json/manifest.json pour modifier le start_url à l'attribut https://news.google.com/news/i#0 et le display de l'attribut standalone a browser . J'ai ensuite créé ma propre page HTML qui contenait simplement les éléments ci-dessous - puis j'ai hébergé les deux sur un serveur web local :

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

Cependant, cela ne fonctionne pas : Bien que le raccourci soit enregistré avec le nom et l'icône souhaités, il renvoie à ma page HTML hébergée par mes soins, et non à la page indiquée. start_url . Malheureusement, il semble que les URLs inter-domaines ne soient pas autorisées par l'intention du manifeste - comme indiqué dans le document https://github.com/w3c/manifest/issues/183 y https://github.com/w3c/manifest/issues/196 .

Tentative 1b : Site web MITM

Dans les limites de mon propre réseau local, je me suis dit que je pouvais essayer de man-in-the-middle (MITM) le site web pour fournir temporairement un manfeste souhaité à utiliser pour l'ajout à l'écran d'accueil. Malheureusement, le site web utilise HSTS ici, qui bloque convenablement la tentative.

Quoi qu'il en soit, c'est beaucoup trop de travail pour ce qui devrait être un effort simple.

Tentative 2 : Widget Bookmark

Malheureusement, il semble que le widget de marque-page 1x1 ait été supprimé dans Chrome 48, comme indiqué dans le document https://productforums.google.com/forum/#!topic/chrome/Ikn2YhvT98s . La solution proposée consiste à utiliser la fonction "Ajouter à l'écran d'accueil" dans Chrome. Aller à 10 / voir le début.

Tentative 3 : Utilisez le navigateur "Internet" fourni par défaut.

Malheureusement, l'utilisation de l'option "Ajouter un raccourci sur l'écran d'accueil" dans le navigateur "Internet" fourni par défaut produit le même résultat que Chrome.

Quatrième possibilité : utiliser une application ou un widget personnalisé

On pourrait probablement écrire et installer une application ou un widget personnalisé qui pourrait être ajouté à l'écran d'accueil pour atteindre l'objectif.

Ou ne réinventez pas la roue, et utilisez un modèle existant. Quelques possibilités :

Conclusion

Comment peut-on créer un raccourci sur le bureau vers une URL arbitraire, en ignorant le manifeste de l'application Web fourni ?

6voto

user185038 Points 76

Pour contourner le manifeste des applications Web de n'importe quel site.

  1. Copiez le code suivant

    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. Ouvrir Chrome sur Android

  3. Allez à l'URL que vous voulez ajouter à votre écran d'accueil, par exemple :

  4. Collez le code copié précédemment dans la barre d'emplacement de Chrome.

  5. Faites défiler jusqu'au début du code collé

    • (Touchez et faites glisser à plusieurs reprises le texte de la barre d'emplacement pour le faire défiler.
  6. Toucher après le x sur JavaScriptx

  7. Effacement arrière de la x en utilisant ce que votre Backspace ressemble sur le clavier à l'écran

  8. Touch Go sur le clavier à l'écran (pour confirmer/accepter l'URL et l'exécuter)

Le JavaScript doit s'exécuter sur la page et il doit sembler ne rien faire, c'est parfait.

Remarque : si la page se recharge pour toute raison vous devrez exécuter à nouveau le JavaScript.

Maintenant, essayez à nouveau d'ajouter cette page à l'écran d'accueil.

Pour ajouter l'URL à l'écran d'accueil

  1. Touchez le "menu à 3 points" de Chrome à l'écran (à droite de la barre d'emplacement, à côté du bouton "nombre d'onglets ouverts") ou utilisez le bouton du menu matériel.
  2. Touch Ajouter à l'écran d'accueil

Il devrait se retrouver sous la forme d'un lien Chrome normal, et non d'une application Web, puisque le JavaScript a supprimé la préférence de la page pour le "mode application Web".

Questions / Commentaires ?

Pourquoi m'avoir fait copier JavaScriptx juste pour que j'efface le x plus tard ?

Parce que, dans mes tests, sur mon téléphone, quand je collais quelque chose avec JavaScript: au début, Chrome a arraché cette partie, ne laissant que le texte après.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X