Как отправить сообщение в любой мессенджер?
Подскажите пожалуйста, мне нужно, чтобы при клике на кнопку в моем приложении, происходила отправка сообщения с информацией в мессенджер (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-999sms:<phone number>sms:5550101234file:<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