Как отправить сообщение в любой мессенджер?

Подскажите пожалуйста, мне нужно, чтобы при клике на кнопку в моем приложении, происходила отправка сообщения с информацией в мессенджер (W/a, telegram(любой из них)). Есть какой-нибудь пакет, предназначенный для этого? или любые другие решения?

Более подробно. Пользователь добавляет товар в корзину, переходит в нее, вписывает своей номер и... весь товар(его названия) и номер должны отправиться в любой мессенджер


Ответы (1 шт):

Автор решения: Михаил Ребров

Share Plus

Можно использовать

https://pub.dev/packages/share_plus

Share.share('Текст сообщения, который необходимо передать');

Android Intent

Если приложение собирается конкретно под андроид, то можно использовать Intent'ы, которые служат для передачи управления и данных другим приложениям

Для этого нужно использовать https://pub.dev/packages/android_intent

if (platform.isAndroid) {
  final AndroidIntent intent = AndroidIntent(
    action: 'action_send',
    data: 'some data'
  );
  await intent.launch();
}

URL Launcher

Для iOS можно использовать https://pub.dev/packages/url_launcher

Он, кстати, подойдет и для андроида, т.ч. если подходит то можно использовать и его

В данном пакете вы можете запустить что-то за счет связи приложений с конкретными URI, такими как

  • https:<URL>
  • mailto:<email address>?subject=<subject>&body=<body>
  • tel:<phone number> tel:+1-555-010-999
  • sms:<phone number> sms:5550101234
  • file:<path>
  • также поддерживается запуск других приложений, связанных с конкретными URI, но возможность их отправки зависит от платформы и установленных у пользователя приложений.
    Ниже рассмотрим подробнее один такой пример:

Отправка сообщения в WhatsApp с помощью url_launcher

Также имеются варианты с помощью url_launcher создать сообщение в WhatsApp с заданными текстом и заранее определенному пользователю.

добавляем зависимость:
pubspec.yaml

dependencies:
  url_launcher: ^6.1.5

В самом простом виде это выглядит вот так вот:

String message = "Hello there!";
await launch("https://wa.me/+79037474031/?text=${Uri.parse(message)}");

Но тут, стоит учитывать, что в Android и iOS обрабатываются разные урлы.

как-то так:

import 'package:url_launcher/url_launcher.dart';

  // ...

  String url(String phone, String message) {
    if (Platform.isAndroid) {
      return "https://wa.me/$phone/?text=${Uri.parse(message)}";
    } else {
      return "https://api.whatsapp.com/send?phone=$phone=${Uri.parse(message)}";
    }
  }

  Future<void> _makeWhatsAppMessage(String phone, String message) async {
    await launch(url(phone, message));
  }
  
  // ...

  void _someButtonHandler() {
    _makeWhatsAppMessage("+79037474031", "Допустим, Здравствуйте!");
  }

  // ...

Запасной вариант

Ну и если этого не хватило, то всегда можно написать платформа-ориентированный код на Java/kotlin или на Objective C / Swift

→ Ссылка