如何从 Flutter 启动 whatsapp 和 facebook messenger window 以指向特定联系人?

How to launch whatsapp and facebook messenger window from Flutter to point to a specific contact?

使用url_launcher我可以打开phone来拨打号码。

 var phone = "+123456789";
 launch("tel://$phone");

我怎样才能对 facebook messenger 和 whatsapp 做同样的事情?

我找到了解决方案。

要打开 whatsapp:

var whatsappUrl ="whatsapp://send?phone=$phone";
await canLaunch(whatsappUrl)? launch(whatsappUrl):print("open whatsapp app link or do a snackbar with notification that there is no whatsapp installed");

要打开 Messenger 或 facebook:

首先缩短url

如果您的 Facebook 个人资料是 facebook.com/yourName facebook url 将是 fb.me/yourName 而 Messenger url 将是 m.me/yourName

那你做 launch("http://$messengerUrl");

Facebook 网站将自动在应用程序中打开 link,即使它通过 URL 浏览器也是如此。如果没有安装应用程序,它将转到 app/play 商店

要打开 WhatsApp,您可以使用此插件:https://pub.dartlang.org/packages/flutter_launch

1.将此添加到您的包的 pubspec.yaml 文件中:

dependencies:
    flutter_launch: "^0.3.0"

2。安装它

$ flutter packages get

3。导入它

import 'package:flutter_launch/flutter_launch.dart';

4.示例:

await FlutterLaunch.launchWhatsapp(phone: "5534992019999", message: "Hello");

完整示例:https://pub.dartlang.org/packages/flutter_launch#-installing-tab-

我们可以使用flutter包https://pub.dev/packages/url_launcher

用于发送号码和文本--->

whatsapp://send?phone=XXXXXXXXX&text=Hellothere!

仅发送文本--->

https://api.whatsapp.com/send?text=Hellothere!

导入包url_launcher:

 url_launcher: ^6.0.3

导入依赖:

import 'package:url_launcher/url_launcher.dart';

把你的 url:

const _url = 'https://api.whatsapp.com/...';

创建您的函数:

void _launchURL() async => await canLaunch(_url) 
    ? await launch(_url) : throw 'Not found $_url';

在 Button 中使用,例如:

FloatingActionButton(
  onPressed: _launchURL,
  ...
),

这对我有用! :D

您可以使用 Flutter URL lanucher 插件来启动 whatsapp 应用程序。您需要为 android 和 iphone 添加条件。您可以阅读完整的 Flutter tutorial here.

对于android

var whatsappURl_android = "whatsapp://send?phone="+whatsapp+"&text=hello";

对于iphone

var whatappURL_ios ="https://wa.me/$whatsapp?text=${Uri.parse("hello")}";

首先检测 phone OS 版本 - android 或 iOS

    if(Platform.isIOS){
    // for iOS phone only
    if( await canLaunch(whatappURL_ios)){
       await launch(whatappURL_ios, forceSafariVC: false);
    }else{
      ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: new Text("whatsapp no installed")));

    }

  }else{
    // android , web
    if( await canLaunch(whatsappURl_android)){
      await launch(whatsappURl_android);
    }else{
      ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: new Text("whatsapp no installed")));

    }


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

void _contactViaWhatsApp(context) async {
    String whatsAppUrl = "";

    String phoneNumber = 'your-phone-number';
    String description = "your-custom-message";

    if (Platform.isIOS) {
      whatsAppUrl =
          'whatsapp://wa.me/$phoneNumber/?text=${Uri.parse(description)}';
    } else {
      whatsAppUrl =
          'https://wa.me/+$phoneNumber?text=${Uri.parse(description)}';
    }

    if (await canLaunch(whatsAppUrl)) {
      await launch(whatsAppUrl);
    } else {
      final snackBar = SnackBar(
        content: Text("Install WhatsApp First Please"),
      );
      ScaffoldMessenger.of(context).showSnackBar(snackBar);
    }
  }