Comment passer un lien hypertexte vers Gmail dans Intention ACTION_SEND?

Peut-être que cette question est déjà posée ou dupliquée d'une autre question, mais je n'ai trouvé aucune solution pour ma recherche. Voici les liens que j'ai suivis pour ma question: Link1 Link2

En fait, ma question concerne le partage de texte HTML dans l'intention par défaut d'Android avec un ACTION_SEND. Lorsque j'essaie de créer un lien hypertexte vers une URL avec une valeur différente, il affiche un texte de valeur simple. Cela ne peut pas être cliqué en tant que lien.

  • Image flou sur un autre appareil
  • Le désaccord des pannes! Réparez vos dépendances
  • Attrape l'événement OnTouch par parent, manipule-le et passe chez les enfants
  • Comment améliorer les performances de la base de données SQLite pour Android
  • Android Persist Data après la désinstallation
  • Comment ajouter TableRow de xml à TableLayout par programme?
  • Voici comment je suis en train de faire:

    Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/html"); String link = "https://www.android.com/" String linkValue = "Click Me"; String body1 = "<a href=\"" + link + "\">" + link+ "</a>";//I don't want this String body2 = "<a href=\"" + link + "\">" + linkValue + "</a>";//This is not working intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body2)); startActivity(Intent.createChooser(intent, "Share With")); 

    Pour body2: Lorsque je partage le texte à l'aide de Gmail, le texte hyperlié par courrier électronique viendra comme un texte normal. Simplement «Cliquez-moi». Je l'ai également vérifié sur le navigateur de bureau. Mais il y a aussi la même chose. J'ai vérifié ce texte dans Inspect Element (Vous pouvez obtenir Inspect Element d'une page de navigateur comme: Cliquez avec le bouton droit de la souris sur la page du navigateur >> Dans la fenêtre contextuelle, cliquez au bas de l'écran Insérer ou renvoyez Inspect Element ) et vous avez trouvé qu'il n'y avait aucune étiquette pour le texte du lien hypertexte.

    Pour body1: Il fonctionne et j'ai reçu l'URL en tant que lien hypertexte dans le courrier électronique, mais j'ai obtenu l'URL en tant que lien hypertexte. Je ne souhaite pas afficher la même URL dans le courrier électronique que dans le cas d'une certaine valeur d'indice comme format body2. Ce format peut être réalisé par le partage direct d'URL dans le corps sans besoin d'étiquette.

    Entrez la description de l'image ici

    Ainsi, enfin, ma recherche est: Y a-t-il un moyen d'utiliser Android pour partager du texte hypertexte avec une valeur d'indice différente plutôt que d'un lien (URL).

    6 Solutions collect form web for “Comment passer un lien hypertexte vers Gmail dans Intention ACTION_SEND?”

    Je vous suggère d'utiliser une ressource de chaîne au lieu d'une chaîne Java, c'est généralement et une bonne pratique et de cette façon, vous ne devrez pas échapper à la même. Et avec les données HTML, vous devrez l'envelopper dans CDATA.

    XML:

     <string name="readyandroid"><![CDATA[<a href="https://readyandroid.wordpress.com/">readyandroid</a>]]></string> 

    En Java, remplacer body2 par:

     String body2 = getString(R.string.readyandroid); 

    Ensuite, essayez de le transmettre à l'intention et l'envoyer dans un courrier électronique, il devrait être un lien hypertexte approprié comme vous le souhaitez.

    Ce que vous faites dans le corps est parfaitement correct.

    Mais Gmail lit le extra android.intent.extra.TEXT tant que chaîne.

    Vous faites en fait une demande de fonctionnalité / signaler un bug.

      android:autoLink="web|email" 

    Veuillez ajouter ce code dans le menu contextuel xml. Cela va directement au lien Gmail

    Je ne pense pas que vous pouvez le faire en utilisant l'intention de courrier électronique. Envoyer un courriel sans intention Faire un client de messagerie pour envoyer un courrier électronique. Cela appuiera la balise HTML.

    Plz se référer

    http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_%28no_Intents%29_in_Android

    Après avoir mis votre String en extra, elle perd ses attributs comme Spanned . Si vous l'envoyez en tant que html, il peut être résolu par certaines applications et affiché comme vous le souhaitez. Généralement, vous venez de mettre un texte brut dans le Bundle de votre Intent , et chaque application l'interprète comme il le souhaite, donc il n'y a pas de solution pour l'envoyer en tant que html et forcer les applications à le montrer comme html.

    D'autre part, si vous savez quelles applications vous utiliserez via partage, vous pouvez lire sa documentation et vérifier si elle permet d'envoyer des hyperliens via l'intention ACTION_SEND.

    Vous pouvez indiquer à un destinataire qu'un type de texte par intent.setType("text/html") , peut-être que le comportement de certaines applications dépend de celui-ci.

    Oui, j'ai atteint cette solution. Merci, @Faraz.

    C'est mon code de réponse, car j'ai créé une chaîne de tags dans string.xml

      <string name="link_to_google_map"><![CDATA[<a href="http://maps.google.com/maps?&z=10&q=%1$s+%2$s">LINK TO GOOGLE MAP</a>]]></string> 

    Et mon code est comme celui-ci, qui fonctionne parfaitement pour le partage à l'aide de tag dans Android:

      Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/html"); String shareText = "Thank you for using the ReadyAndroid App" + "<br />" + "Name : " + "ReadyAndroid"; shareText += "<br />" + "Address : " + "https://readyandroid.wordpress.com/ <br />Mandawa, Jhunjhunu, Rajasthan 333704"; String mapLocation = String.format(getString(R.string.link_to_google_map), 28.0500, 75.1487); intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(shareText+mapLocation)); startActivity(Intent.createChooser(intent, "Share with")); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.