Bonsoir !

J'ai utilisé le script de la vidéo de Grafikart pour partager une page (article, news, etc) sur les réseaux sociaux, cependant j'utilise ça sur un site qui a été fait avec Angular et qui du coup possède une dièse dans l'URL.

Le problème c'est que si l'URL est formé ainsi : http://monsite.com/#/un-random-article alors Twitter et Google+ tronquent le lien en http://monsite.com/ et Facebook ne lance même pas la page de partage (referme instantannément la pop-up). J'ai essayé avec et sans encodeURIComponent() mais le problème reste le même.
Je ne sais pas si le bug viennent d'une sécurité chez eux qui empêcherait de mettre une dièse, du navigateur qui ferait pareil ou tout simplement le javascript qui n'est pas correcte (ça me semble étrange vu que console.log retourne le lien correct)

Est-ce que quelqu'un aurait une solution à ce problème ?
J'ai une idée de fallback mais j'aimerais si possible y arriver sans devoir détourner la chose. ^^

4 réponses


Si tu utilises angular-ui-router (https://github.com/angular-ui/ui-router), tu as essayé de faire ceci ?

app.config(function($stateProvider, $urlRouterProvider) {

        $stateProvider
            .state('random-article', {
                  url: "/un-random-article",
                  templateUrl: "template/random.html"
       });

    $urlRouterProvider.otherwise("/un-random-article");
}

Ca te permet de faire une redirection par défaut dans le cas où l'url appellé n'est pas une route.

Ahy
Auteur

Ca ne résoud pas mon problème, qui est la dièse dans l'URL du lien à partager qui ne passe tout simplement pas ...

Normalement, si tu rajoutes ce morceau de code, lorsque l'utilisateur clique sur http://monsite.com/, il devrait être renvoyé vers http://monsite.com/#/un-random-article

Ce n'est pas ce que tu veux ?

Sinon, au pire des cas, tu passes par un shortener d'url (ex: https://bitly.com/)

Ahy
Auteur

Non, tu n'as pas compris mon problème.

Donc reprenons depuis le début : j'ai un site fait sur angular. Il y a des pages crées de manières dynamiques (enregistrées dans une BDD et récupéré par une API, bref, là rien de bizarre). L'URL de ces pages sont de la forme : http://monsite.com/#/article/un-random-slug-d-article

Sur ces pages, il y a des boutons de partage vers Facebook, Twitter et Google. L'objectif étant qu'une fois partagé sur un réseau, en cliquant vers le lien de l'article (dont la forme est écrite plus haut), on y accéde directement. Le problème étant que quelque chose tronque l'URL à partir de la dièse (ce qui ne me donne donc simplement http://monsite.com/ ). Chose qui ne sert à rien vu que le bouton sert à partager la page voulue.

Bon, je vais me replier sur une solution de secours à base de PHP mais j'aurais aimé trouver une solution plus direct.