在Whatsapp中打开对话并填充文本

 倒骑毛驴笑看人生gnWC_659 发布于 2023-01-11 18:12

我想打开WhatsApp一个特定的对话,并用一些字符串填充文本字段.

我拥有的代码和我设法与联系人打开对话:

private void openConversationWithWhatsapp(String e164PhoneNumber){
    String whatsappId = e164PhoneNumber+"@s.whatsapp.net";
    Uri uri = Uri.parse("smsto:" + whatsappId);
    Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
    intent.setPackage("com.whatsapp");

    intent.putExtra(Intent.EXTRA_TEXT, "text");
    intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
    intent.putExtra(Intent.EXTRA_TITLE, "title");
    intent.putExtra(Intent.EXTRA_EMAIL, "email");
    intent.putExtra("sms_body", "The text goes here");
    intent.putExtra("text","asd");
    intent.putExtra("body","body");
    intent.putExtra("subject","subjhect");

    startActivity(intent);
}

但是文本框中没有内容.我试图查看AndroidManifest.xml文件内部并找到有关其对话活动的以下信息:


    
        
        
        
        
        
    

有人知道额外使用吗?他们故意阻止这个吗?我在他们的FAQ页面中看到了他们的iOS API .

3 个回答
  • 我已经做了!

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

    2023-01-11 18:15 回答
  • 可悲的是,他们没有在android上实现这个功能(也许他们将来会这样做).

    我已经问了一个类似的问题,但没有结果.虽然whatsapp会对您在代码中显示的某些意图做出反应,但它们根本不会使用您发送的文本.我想这是出于安全原因,想象一下游戏商店中whatsapp-spammer应用程序的数量......我不知道它在iOS中的实现方式(及其原因)...

    接近您的解决方案的两个替代方案是

      发送文本并创建一个选择器(无需键入,只需选择whatsapp)

      打开联系人(需要输入文本,但不需要选择联系人)

    2023-01-11 18:16 回答
  • 2017年更新

    基于此Whatsapp常见问题解答

    我正在使用这个网址

    https://api.whatsapp.com/send?phone=62xxxxxxx&text=Hello,%20from%20my%20Apps
    

    其中62是印度尼西亚的拨号代码

    然后我使用这样的意图(即时通讯使用kotlin)

    val uri = Uri.parse("https://api.whatsapp.com/send?phone=62xxxxxxx&text=Hello,%20from%20my%20Apps")
            val intent = Intent(Intent.ACTION_VIEW, uri)
            startActivity(intent)
    

    用您的号码替换62xxxxx这对我来说很好

    2023-01-11 18:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有