android 如何将文本从我的应用共享到WhatsApp?

hmae6n7t  于 2022-12-25  发布在  Android
关注(0)|答案(9)|浏览(355)

我开发了一个应用程序,它具有分享文本的功能。除了WhatsApp之外,这个应用程序运行良好。我应该怎么做?有没有专门的API?

pbpqsu0x

pbpqsu0x1#

您可以使用Intent来完成此操作,无需使用Whatsapp API。

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.");
}
cbeh67ev

cbeh67ev2#

有两种方式与WhatsApp集成:

  • 通过自定义URL方案
  • 通过Android的意图系统。

如果您有一个网站,并希望打开一个WhatsApp聊天与预填充的消息,您可以使用我们的自定义网址方案来这样做。打开whatsapp://send?text =,然后发送文本,将打开WhatsApp,允许用户选择一个联系人,并预先填写输入字段与指定的文本。
与Android上的大多数社交应用一样,WhatsApp会监听Intent来共享媒体和文本。例如,只需创建一个Intent来共享文本,系统选取器就会显示WhatsApp:

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

但是,如果您更喜欢直接共享到WhatsApp并绕过系统选取器,则可以通过在Intent中使用setPackage来实现:

sendIntent.setPackage("com.whatsapp");

这可以在调用startActivity(sendIntent)之前设置;
请参考以下链接WhatsApp官方页面:https://www.whatsapp.com/faq/en/android/28000012
如果您想分享一些文字到特定的WhatsApp联系人,请参考下面的代码.

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

}

有关更多详细信息,请参阅以下链接Send text to specific contact (whatsapp)

0pizxfdo

0pizxfdo3#

如果用户的设备中没有Whatsapp应用程序,则用户将收到ActivityNotFoundException
然后,您应该先移动用户下载应用程序。

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")));
        }
    }
pkln4tw6

pkln4tw64#

Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("text/plain");
    share.putExtra(Intent.EXTRA_TEXT, "Your text");
    startActivity(Intent.createChooser(share, "Share using"));
uqxowvwt

uqxowvwt5#

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

moiiocjp6#

我不是100%肯定.... a.但我担心没有正式的API发布。我也想实现一个“给我们发送一个什么应用程序”的功能,但我暂时放弃了,直到whatsapp.inc发布一个正式的功能
有一些非官方的API,但我不知道如果你想要的...
http://www.whatsapp-api.com/developers.php
https://github.com/venomous0x/WhatsAPI
祝你好运...如果你发现了什么,请告诉我;)

stszievb

stszievb8#

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
hjqgdpho

hjqgdpho9#

WhatsApp没有公开的官方API ......所以现在不可能。(2012年11月6日回答)

相关问题