gpt4 book ai didi

ios - 如何处理来自联系人应用程序(如 Facebook)的即时消息 URL

转载 作者:行者123 更新时间:2023-11-29 03:18:07 25 4
gpt4 key购买 nike

我有预感这会很难。

在 iOS7 上,Facebook 应用程序可以通过单击任何联系人的 IM(即时消息)信息直接从 iOS 联系人应用程序启动:

enter image description here

显然,这只有在您允许 Facebook 访问您的联系人时才有效,但我想知道他们是怎么做到的?
我知道 Custom URL handling ,这非常适合处理特制的 URL,但在这种情况下,将我自己伪造的 URL(“myapp://gui13@lol.com”)放入 IM 联系信息中不会触发功能。

我发现只有一种方法可以触发联系人应用程序启动我的应用程序,即将我的 URL 保存到“链接”类型的联系人信息中。
坏的缺点是这种“链接”类型的信息不与远程地址簿同步......

所以我的问题是:当用户点击“联系人”应用中的 IM 信息时,我如何告诉 iOS 启动我的应用?

或者坏消息...Facebook 是苹果支持的应用程序,就像 Twitter 一样,这使得它能够与 Apple 的应用程序进行这种高级交互?

最佳答案

这是可以实现的。正如您所说,您必须为您的应用程序创建自定义 URL 方案(如果有人不知道该怎么做,这里是 tutorial )。

现在您必须将 kABPersonSocialProfileProperty 添加到您的联系人(现有的或新的)。

ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, nil);
ABRecordRef contact = ABPersonCreate();

/* implement standard contact info */
/* the social part below */

ABMultiValueRef social = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);
ABMultiValueAddValueAndLabel(social, (__bridge CFTypeRef)([NSDictionary dictionaryWithObjectsAndKeys:
@"your app service name ", kABPersonSocialProfileServiceKey, //will be visible in contact
@"contact firstname / lastname / identifier", kABPersonSocialProfileUsernameKey, //will be visible in contact
@"your app custom url scheme", kABPersonSocialProfileURLKey, //url which will be open onclick event
nil]), (__bridge CFStringRef)@"your app special identifier", NULL); //to know to which app this social belongs to. I believe it is for search purposes

ABRecordSetValue(contact, kABPersonSocialProfileProperty, social, NULL);
CFRelease(social);

/* save contact */

为了完整起见,这里是 tutorial其中深入解释了如何创建联系人并将其添加到地址簿。

希望对大家有帮助。

关于ios - 如何处理来自联系人应用程序(如 Facebook)的即时消息 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21437269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com