如何从我们的应用程序打开WhatsApp中的特定联系人聊天屏幕?

时间:2016-05-17 03:55:53

标签: ios swift swift2 whatsapp

我想集成以下功能

我正在传递一个用户的联系电话。如果该联系号码已经存在,当我按下我的应用程序中的WhatsApp按钮时,直接打开该用户的聊天屏幕。

如果地址簿中不存在该联系人,则首先将此联系人存储在地址簿中,然后在WhatsApp中打开该联系人的聊天屏幕(通过刷新的联系人,我将获得该人的姓名在WhatsApp聊天屏幕上。)

我完成了以下任务:

如果联系人不存在,则首先将其存储在地址簿中,然后转到WhatsApp。如果我第二次再次按下WhatsApp按钮,则会检查该联系人是否存在。如果已经保存,则获取其记录标识符并通过WhatsApp URL方案传递。

主要问题是它只是转移到WhatsApp的联系人列表,但没有打开用户的特定聊天屏幕。

注意:这个功能在Android中完美运行,所以我希望它也可以集成到iOS / Swift应用程序中。

2 个答案:

答案 0 :(得分:0)

查看最新应用Custom URL方案

https://www.whatsapp.com/faq/en/iphone/23559013

没有为用户的特定聊天屏幕注册URL方案。

答案 1 :(得分:0)

只需使用您的whatsapp url方案附加ABID,并将其称为有效。

ABID 代表地址簿记录ID,下面的代码用于获取AB记录ID。它对URL本身中的分隔符的使用很敏感。

要向特定用户发送备注,请使用此 - urlstring格式: whatsapp:// send?abid = 12& text = Hello%20World - 请注意使用&标记第二个参数。

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController    *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
{   
    ARecordID  = (ABRecordID)ABRecordGetRecordID(person);
    ....
    whatsapp_string = [NSString stringWithFormat:@"whatsapp://send?abid=%d&text=%@;",ARecordID, "hello"];
    ....
}