ios - Whatsapp URL 方案中的 ABID

标签 ios url-scheme whatsapp

昨天 Whatsapp 更新了他们的 iOS 应用程序并发布了官方 URL 方案(api hooks)。

我想尝试一下它,但我现在面临的问题是我不理解整个“abid”的东西?!我从哪里获得联系人 ID?那我该如何使用它呢?

提前致谢:)

最佳答案

ABID代表Address book Record ID,下面的代码用于获取AB Record ID。它对 URL 本身中分隔符的使用很敏感。所以最初的试验没有奏效。要向特定用户发送注释,请使用此 - urlstring 格式: whatsapp://send?abid=123&text=What%20a%20nice%20day - 注意使用 & 标记第二个参数。

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

这可以在不使用人员选择器的情况下进行编码,只需打开地址簿即可:

比较姓名或姓名和号码,一项一项地查看记录 -

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions (NULL, error);
int len = (int)ABAddressBookGetPersonCount(addressBook);
for(int i = 1; i < (len + 1); i++) {
    ABRecordRef person = ABAddressBookGetPersonWithRecordID(addressBook, (ABRecordID)i);
    NSString *first, *last;
    if (!person) {
        continue;
    }
    CFStringRef firstc = (CFStringRef)ABRecordCopyValue(person, kABPersonFirstNameProperty);
    if (firstc) {
        CFStringRef lastc =(CFStringRef) ABRecordCopyValue(person, kABPersonLastNameProperty);
        if (lastc) {
            first = [NSString stringWithFormat:@"%@",firstc];
            last =[NSString stringWithFormat:@"%@",lastc];
            CFRelease(lastc);
        }
        CFRelease(firstc);
    }
    if ([[first lowercaseString] isEqualToString:[firstname lowercaseString]] && [[last lowercaseString] isEqualToString:[surname lowercaseString]]) {
        alreadyExists = YES;
        ABID = ABRecordGetRecordID(person);
        break;
    }
}

关于ios - Whatsapp URL 方案中的 ABID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711325/

相关文章:

c# - Whatsapp 登录失败未授权

javascript - 如果 URL 以 "blob:"开头,如何使用 Python 3/Selenium 下载图像?

ios - 您可以更改 scnView.autoenablesDefaultLighting 的属性吗?

ios - 使用 Facebook SSO 作为唯一登录机制对 iOS 客户端的 REST API 进行身份验证

ios - 为什么有这么多canOpenURL?

http - 获取当前请求 URL 的方案

objective-c - 使用自定义 URL 方案导入数据

android - 如何将 Whatsapp 贴纸保存/导出为 webp 图像?

xcode - iOS4.1 SDK 中单个库的重复符号

ios - SpriteKit - SKLightNode 阴影混合模式