web-dev-qa-db-fra.com

Comment partager du texte sur WhatsApp à partir de mon application?

Je développe une application avec une fonctionnalité pour partager du texte. Cela fonctionne très bien, sauf pour WhatsApp. Que devrais-je faire? Existe-t-il une API spécifique pour cela?

36
user1755441

Vous pouvez utiliser l'intention de le faire . Pas besoin d'utiliser l'API Whatsapp . J'espère que je n'ai pas mal compris votre question. J'espère que ça aide, merci.

Intent whatsappIntent = new Intent(Intent.ACTION_SEND);
whatsappIntent.setType("text/plain");
whatsappIntent.setPackage("com.whatsapp");
whatsappIntent.putExtra(Intent.EXTRA_TEXT, "The text you wanted to share");
try {
    activity.startActivity(whatsappIntent);
} catch (Android.content.ActivityNotFoundException ex) {
    ToastHelper.MakeShortText("Whatsapp have not been installed.");
}
95
Sonny Ng

Il y a deux façons d'intégrer WhatsApp:

  • Via un schéma d'URL personnalisé 

  • Grâce au système d'intention d'Android.

Si vous avez un site Web et souhaitez ouvrir une discussion WhatsApp avec un message prérempli, vous pouvez utiliser notre modèle d'URL personnalisé. Ouvrir whatsapp: // send? Text = suivi du texte à envoyer ouvrira WhatsApp, permettra à l'utilisateur de choisir un contact et pré-remplira le champ de saisie avec le texte spécifié.

Comme la plupart des applications sociales sur Android, WhatsApp écoute ses intentions de partager du contenu multimédia et du texte. Créez simplement une intention de partage de texte, par exemple, et WhatsApp sera affiché par le sélecteur de système:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);

Toutefois, si vous préférez partager directement avec WhatsApp et contourner le sélecteur de système, vous pouvez le faire en utilisant setPackage dans votre intention:

sendIntent.setPackage("com.whatsapp");

Cela serait simplement défini juste avant d'appeler startActivity (sendIntent);

Veuillez vous reporter ci-dessous au lien officiel Page officielle WhatsApp: https://www.whatsapp.com/faq/en/Android/28000012 ,

Si vous souhaitez partager du texte avec un contact WhatsApp spécifique, veuillez vous reporter au code ci-dessous.

private void openWhatsApp() {
String smsNumber = "7****"; //without '+'
try {
    Intent sendIntent = new Intent("Android.intent.action.MAIN");
    //sendIntent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.Conversation"));
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.setType("text/plain");
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
    sendIntent.putExtra("jid", smsNumber + "@s.whatsapp.net"); //phone number without "+" prefix
    sendIntent.setPackage("com.whatsapp");
    startActivity(sendIntent);
} catch(Exception e) {
    Toast.makeText(this, "Error/n" + e.toString(), Toast.LENGTH_SHORT).show();
 }

}

Pour plus de détails, veuillez consulter le lien ci-dessous Envoyer un texte à un contact spécifique (WhatsApp)

14
Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("text/plain");
    share.putExtra(Intent.EXTRA_TEXT, "Your text");
    startActivity(Intent.createChooser(share, "Share using"));
6
Rutul Mehta
1
Nathalie Lima

Je ne suis pas sûr à 100% ... mais je crains qu'aucune API officielle ne soit publiée. Je voulais aussi implémenter une fonctionnalité "envoie-nous un WhatsApp", mais j'abandonne pour un moment jusqu'à ce que Whatsapp.inc publie un officiel. 

Il y a des API non officielles mais je ne sais pas si vous le souhaitez ...

http://www.whatsapp-api.com/developers.php

https://github.com/venomous0x/WhatsAPI

bonne chance .... et si vous découvrez quelque chose, s'il vous plaît faites le moi savoir;)

1
Rako
  Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
    sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
    startActivity(sendIntent);
1
Amrish Kakadiya

Si l'appareil de l'utilisateur ne dispose pas de l'application Whatsapp, vous obtenez le ActivityNotFoundException  

Si l'utilisateur ne dispose pas de l'application WhatsApp dans son appareil, alors i pense que vous devez faire déplacer l'utilisateur à télécharger le WhatsApp à partir du jeu le magasin

public void shareViaWhatsApp() {
        Intent whatsappIntent = new Intent(Intent.ACTION_SEND);
        whatsappIntent.setType("text/plain");
        whatsappIntent.setPackage("com.whatsapp");
        whatsappIntent.putExtra(Intent.EXTRA_TEXT, "Application of social rating share with your friend");
        try {
            Objects.requireNonNull(getActivity()).startActivity(whatsappIntent);
        } catch (Android.content.ActivityNotFoundException ex) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.whatsapp")));
        }
    }
0
D Prince
 message = "this msg is sent from My App Time Track"
            val intent = Intent()//Empty as we don't know the destination i.e implicit intent
            intent.action = Intent.ACTION_SEND//intent will do work of sending something
            intent.putExtra(Intent.EXTRA_TEXT, message)//send given message
            intent.putExtra(Intent.EXTRA_SUBJECT,"Download Time Track App")//give the subject for your message
            //Intent.Extra_Text is actually a globol key
            intent.type = "plane/text"//type of intent

            startActivity(Intent.createChooser(intent,"Send to: "))//createChooser is a dialogBox which shows app available to send data
0
Asim