将可点击链接作为来自Whatsapp API的消息的一部分

时间:2019-07-12 08:30:57

标签: android ios swift whatsapp

我正在尝试从iOS(Swift)和Android(Java)应用程序向WhatsApp中的用户发送包含可点击链接的消息。我正在使用以下网址方案:

whatsapp://send?text=$MY_URL_ENCODED_MESSAGE

邮件内容正确填充,但是发送邮件时,链接未呈现为可点击链接。

我尝试使用markdown,HTML并删除URL编码,而只是发送链接-似乎没有任何效果。

我已经阅读到WhatsApp可能具有一些安全功能,当收件人不在我的联系人列表中但我发送消息的所有对象都在其中时,WhatsApp会阻止可单击的链接。

对此表示感谢。

1 个答案:

答案 0 :(得分:1)

答案是将消息内容与链接分开。

基于如下所示的数据结构:

data = {
  message = 'Search here'
  link = 'https://www.google.com'
}

您的解决方案将如下所示:

iOS

url: "whatsapp://send?text=" + data.message.uri_encoded + data.link

使用以下命令在设备上打开WhatsApp:

let url  = URL(string: data["url"] as! String)

if UIApplication.shared.canOpenURL(url!) {
  UIApplication.shared.open(url!, options: [:], completionHandler: nil)
} else {
  # user does not have WhatsApp installed
}

Android

url: "https://api.whatsapp.com/send?text=" + data.message.uri_encoded + data.link
packageName:  'com.whatsapp'

使用以下命令在设备上打开WhatsApp:

try {
  String packageName = obj.getJSONObject("data").getString("packageName");
  PackageManager pm = context.getPackageManager();
  pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);

  Intent intent = new Intent(Intent.ACTION_VIEW);
  intent.setData(Uri.parse(url));

  context.startActivity(intent);
} catch (PackageManager.NameNotFoundException e) {
  // user does not have WhatsApp installed
}