如何使用UrlLauncher将消息从Flutter应用直接发送到WhatsApp?

时间:2019-04-28 16:47:37

标签: dart flutter flutter-dependencies

我正在构建一个必须能够下订单并将其发送到特定whatsApp编号的应用。我到底该怎么办?我可以打开whatsappp,但我不知道打开它时如何发送消息。

 title: new Text("WhatsApp"),
            trailing: new Icon(Icons.message),
             onTap: () async {
              int phone = 962770593839;
              var whatsappUrl = "whatsapp://send?phone=$phone";
              await UrlLauncher.canLaunch(whatsappUrl) != null
                  ? UrlLauncher.launch(whatsappUrl)
                  : print(
                      "open whatsapp app link or do a snackbar with 
notification that there is no whatsapp installed");
            },

我希望当我输入TextField并按send时,在启动whatsapp之后,保存的String将能够发送到whatsapp号。

5 个答案:

答案 0 :(得分:2)

尝试flutter_open_whatsapp插件。您直接将邮件发送到号码

FlutterOpenWhatsapp.sendSingleMessage("918179015345", "Hello");

链接 Open in WhatsApp

答案 1 :(得分:1)

您可以这样做。

onPressed: () async {         
          for (var msg in msgList) {
            if (msg["phone"] != null) {
              var url = "${baseURL}91${msg['phone']}&text=${msg['messages']}";
              print(url);
              AndroidIntent intent = AndroidIntent(
                  action: 'action_view',
                  data: Uri.encodeFull(url),
                 package: "com.whatsapp.w4b");
              intent.launch();
            }
          }
        },
        child: Icon(Icons.send),
      ),

答案 2 :(得分:0)

您应该为此目的使用Flutter插件。

答案 3 :(得分:0)

使用插件。

  

url_launcher:

使用以下链接:https://api.whatsapp.com/send?phone=XXXXXXXXXXX(在X的位置,键入您想要联系的人的电话号码,包括国家代码,但不带+号。)

RaisedButton(
       onPressed: onPressed: () async => await launch(
         "https://wa.me/${number}?text=Hello"),,
      child: Text('Open Whatsapp'),
),

答案 4 :(得分:-1)

使用 whatsapp_share

这会启动带有相应号码的 WhatsApp 并预填充文本字段。

  • 用于文本和链接
 Future<void> share() async {
    await WhatsappShare.share(
      text: 'Whatsapp share text',
      linkUrl: 'https://flutter.dev/',
      phone: '911234567890',
    );
  }
  • 分享图片、文件

_image.path 是你想分享到 whatsapp 的文件路径

 Future<void> shareFile() async {
    await WhatsappShare.shareFile(
      text: 'Whatsapp share text',
      phone: '911234567890',
      filePath: "${_image.path}",
    );
  }

完整示例 here