管理 flutter 上的 Whatsapp/Whatsapp 业务链接

问题描述 投票:0回答:1

我正在开发 Flutter 应用程序,需要您的帮助来改进 WhatsApp 链接的处理。目前,当我单击电话号码时,会出现底部表单(或弹出窗口),询问我是否要使用拨号器或 WhatsApp。但是,当我选择 WhatsApp 时,它会在浏览器中打开一个页面,然后(在某些设备上,但在其他设备上则不会)打开一个 Android 弹出窗口,让我在 WhatsApp 和 WhatsApp Business 之间进行选择。

这种行为在不同设备上是不一致的,我想避免浏览器步骤,因为它可能会让不懂技术的用户(我的应用程序的大多数用户)感到困惑。

我的目标是,当我按下“WhatsApp”时,会直接出现一个对话框,允许我在 WhatsApp 和 WhatsApp Business 之间进行选择,并可以选择“仅一次”或“始终”。我想避免强迫用户更改 Android 设置以选择默认的 WhatsApp 应用程序。

这是我目前用来处理 WhatsApp 的代码,但它没有按预期工作:

void _launchWhatsApp(String phoneNumber) async {
  const whatsappBusinessScheme = 'whatsapp://send?phone=';
  const whatsappScheme = 'https://wa.me/';

  final Uri whatsappBusinessUri =
      Uri.parse('$whatsappBusinessScheme$phoneNumber');
  if (await canLaunchUrl(whatsappBusinessUri)) {
    await launchUrl(whatsappBusinessUri);
  } else {
    final Uri whatsappUri = Uri.parse('$whatsappScheme$phoneNumber');
    if (await canLaunchUrl(whatsappUri)) {
      await launchUrl(whatsappUri);
    } else {
      Get.snackbar('error'.tr, 'whatsapp_error'.tr);
    }
  }
}

我需要在 AndroidManifest 或 info.plist 中添加一些内容吗?或者我缺少什么? 有人对如何在不通过浏览器的情况下实现此功能有建议吗?任何帮助将不胜感激!

提前致谢!

android flutter dart whatsapp
1个回答
0
投票

externalApplication

 中使用 url_launcher
 
模式

launchUrl(url, mode: LaunchMode.externalApplication)
© www.soinside.com 2019 - 2024. All rights reserved.