我试图通过iOS(Swift)和Android(Java)应用发送一条包含可点击链接的消息给WhatsApp的用户。我使用的网址方案如下。
whatsapp://send?text=$MY_URL_ENCODED_MESSAGE
消息内容正确填充,但当消息被发送时,链接没有被渲染成可点击的链接。
我试过使用markdown,HTML和删除URL编码,只发送一个链接 - 似乎没有任何效果。
我读到WhatsApp可能有一些安全功能,当收信人不在我的联系人列表中时,可以防止点击链接,但我发送的信息的所有人都在。
感謝您的幫助。
答案是将消息内容和链接分开。
基于数据结构,看起来是这样的。
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
}
安卓系统
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
}