140 votes

Envoyer un message via WhatsApp

Comme j'ai trouvé d'anciens messages indiquant que whatsapp ne prend pas en charge cette fonction, je me demandais si quelque chose avait changé et s'il existait un moyen d'ouvrir un "chat" whatsapp avec un numéro que j'envoie par le biais d'une intention ?

2voto

HoldOffHunger Points 1

Vous devez utiliser une URL au format suivant...

https://api.whatsapp.com/send?text=text

Vous pouvez ensuite lui demander d'envoyer le texte que vous souhaitez. Vous avez également la possibilité de spécifier un numéro de téléphone...

https://api.whatsapp.com/send?text=text&phone=1234

Ce que vous NE PEUT PAS FAIRE est d'utiliser ce qui suit :

https://wa.me/send?text=text

Vous obtiendrez...

Nous n'avons pas trouvé la page que vous recherchiez.

wa.me Cependant, il fonctionnera si vous fournissez à la fois un numéro de téléphone et un texte. Mais, dans la plupart des cas, si vous essayez de créer un lien de partage, vous ne voulez vraiment pas indiquer le numéro de téléphone, car vous voulez que l'utilisateur sélectionne quelqu'un. Dans ce cas, si vous ne fournissez pas de numéro de téléphone et que vous utilisez la fonction wa.me comme URL, tous vos liens de partage échoueront. Veuillez utiliser app.whatsapp.com .

1voto

Basim Sherif Points 2774

Vérifiez ce code,

    public void share(String subject,String text) {
     final Intent intent = new Intent(Intent.ACTION_SEND);

String score=1000;
     intent.setType("text/plain");
     intent.putExtra(Intent.EXTRA_SUBJECT, score);
     intent.putExtra(Intent.EXTRA_TEXT, text);

     startActivity(Intent.createChooser(intent, getString(R.string.share)));
}

1voto

John smith Points 1240

C'est beaucoup plus long, mais ça fonctionne. Profitez de votre code :)

 //method used to show IMs
private void show_custom_chooser(String value) {
    List<ResolveInfo> list = null;
    final Intent email = new Intent(Intent.ACTION_SEND);
    email.setData(Uri.parse("sms:"));
    email.putExtra(Intent.EXTRA_TEXT, "" + value);
    email.setType("text/plain"); // vnd.android-dir/mms-sms

    WindowManager.LayoutParams WMLP = dialogCustomChooser.getWindow()
            .getAttributes();
    WMLP.gravity = Gravity.CENTER;
    dialogCustomChooser.getWindow().setAttributes(WMLP);
    dialogCustomChooser.getWindow().setBackgroundDrawable(
            new ColorDrawable(android.graphics.Color.TRANSPARENT));
    dialogCustomChooser.setCanceledOnTouchOutside(true);
    dialogCustomChooser.setContentView(R.layout.about_dialog);
    dialogCustomChooser.setCancelable(true);
    ListView lvOfIms = (ListView) dialogCustomChooser
            .findViewById(R.id.listView1);
    PackageManager pm = getPackageManager();
    List<ResolveInfo> launchables = pm.queryIntentActivities(email, 0);
    // ////////////new
    list = new ArrayList<ResolveInfo>();
    for (int i = 0; i < launchables.size(); i++) {
        String string = launchables.get(i).toString();
        Log.d("heh", string);
//check only messangers
        if (string.contains("whatsapp")) {
            list.add(launchables.get(i));
        }
    }
    Collections.sort(list, new ResolveInfo.DisplayNameComparator(pm));
    int size = launchables.size();
    adapter = new AppAdapter(pm, list, MainActivity.this);
    lvOfIms.setAdapter(adapter);
    lvOfIms.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            ResolveInfo launchable = adapter.getItem(position);
            ActivityInfo activity = launchable.activityInfo;
            ComponentName name = new ComponentName(
                    activity.applicationInfo.packageName, activity.name);
            email.addCategory(Intent.CATEGORY_LAUNCHER);
            email.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            email.setComponent(name);
            startActivity(email);
            dialogCustomChooser.dismiss();
        }
    });
    dialogCustomChooser.show();

}

1voto

Will Points 777

Je suis vraiment en retard ici mais je crois qu'aujourd'hui nous avons des solutions plus courtes et meilleures pour envoyer des messages via WhatsApp.

Vous pouvez utiliser ce qui suit pour appeler le sélecteur de système, puis choisir l'application que vous utiliserez pour partager ce que vous voulez.

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);

Si vous avez vraiment besoin d'envoyer par WhatsApp, tout ce que vous devez faire est le suivant (vous sauterez 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");
    // Put this line here
    sendIntent.setPackage("com.whatsapp");
    //
    startActivity(sendIntent);

Si vous avez besoin de plus d'informations, vous pouvez les trouver ici : FAQ sur WhatsApp

1voto

Adekola Akano Points 1
private fun sendWhatsappMessage(phoneNumber:String, text:String) {        
  val url = if (Intent().setPackage("com.whatsapp").resolveActivity(packageManager) != null) {
        "whatsapp://send?text=Hello&phone=$phoneNumber"
    } else {
        "https://api.whatsapp.com/send?phone=$phoneNumber&text=$text"
    }

    val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
    startActivity(browserIntent)
}

C'est un moyen beaucoup plus facile d'y parvenir. Ce code vérifie si whatsapp est installé sur l'appareil. S'il est installé, il contourne le sélecteur système et va au contact sur whatsapp et pré-chiffre le texte dans le chat. S'il n'est pas installé, il ouvre le lien whatsapp sur votre navigateur web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X