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

k97glaaz  于 2023-02-05  发布在  Flutter
关注(0)|答案(5)|浏览(181)

我正在开发一个应用程序,它必须能够接受订单并发送到一个特定的WhatsApp号码。我到底应该怎么做?我可以打开WhatsApp,但我不知道如何在打开它时发送消息。

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

我希望当我输入一个文本字段并按下发送,保存的字符串将能够发送到WhatsApp号码后启动WhatsApp.

uxhixvfz

uxhixvfz1#

使用插件。
url_launcher
使用以下链接:https://api.whatsapp.com/send?phone=XXXXXXXXXXX(键入您要联系的人的电话号码,包括国家/地区代码,但不包括+号。)

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

您可以使用其他插件。
whatsapp_unilink
whatsapp_unilink包帮助您构建HTTP链接,并为您提供一个惯用的Dart接口:

import 'package:whatsapp_unilink/whatsapp_unilink.dart';
import 'package:url_launcher/url_launcher.dart';

launchWhatsApp() async {
  final link = WhatsAppUnilink(
    phoneNumber: '+001-(555)1234567',
    text: "Hey! I'm inquiring about the apartment listing",
  );
  await launch('$link');
}
vcirk6k6

vcirk6k62#

试试flutter_open_whatsapp插件,直接发消息给号码

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

链接Open in WhatsApp

gz5pxeao

gz5pxeao3#

你可以这样做。

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),
      ),
r8xiu3jd

r8xiu3jd4#

使用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

6tr1vspr

6tr1vspr5#

我使用 url_launcher:^6.1.7 就像这样。

void launchWhatsapp(
  String phone,
  String message,
) async {
  final url = 'https://wa.me/967$phone?text=$message';

  await launchUrlString(
    url,
    mode: LaunchMode.externalApplication,
  );
}

这里我想提到的是启动模型默认设置为
LaunchMode.platformDefault
当我尝试启动WhatsApp时,打开的是网页而不是WhatsApp
因此将启动模型设置为
型号:启动模式.外部应用程序
已解决此问题

相关问题