Ios 如何处理联系人应用程序(如Facebook)中的即时消息URL
我有种感觉这次会很难 在iOS7上,Facebook应用程序可以通过点击任何联系人的IM(即时消息)信息直接从iOS联系人应用程序启动: 显然,这只有在您允许Facebook访问您的联系人时才有效,但我想知道他们是如何做到的?Ios 如何处理联系人应用程序(如Facebook)中的即时消息URL,ios,objective-c,custom-url,Ios,Objective C,Custom Url,我有种感觉这次会很难 在iOS7上,Facebook应用程序可以通过点击任何联系人的IM(即时消息)信息直接从iOS联系人应用程序启动: 显然,这只有在您允许Facebook访问您的联系人时才有效,但我想知道他们是如何做到的? 我知道,它非常适合处理巧尽心思构建的url,但在本例中,将我自己的伪造url(“myapp://gui13@即时通讯联系信息中的“lol.com”)不会触发功能性 我发现只有一种方法可以触发联系人应用程序启动我的应用程序,那就是将我的URL保存到“链接”类型的联系人信息
我知道,它非常适合处理巧尽心思构建的url,但在本例中,将我自己的伪造url(“myapp://gui13@即时通讯联系信息中的“lol.com”)不会触发功能性 我发现只有一种方法可以触发联系人应用程序启动我的应用程序,那就是将我的URL保存到“链接”类型的联系人信息中。
糟糕的缺点是,此“链接”类型信息未与远程通讯簿同步 所以我的问题是:当用户点击联系人应用程序中的IM信息时,我如何告诉iOS启动我的应用程序
或者坏消息。。。Facebook是一个受苹果祝福的应用程序,就像推特一样,它使它能够与苹果的应用程序进行这种高级交互?这是可以实现的。正如您所说,您必须为您的应用程序创建自定义URL方案(如果有人不知道如何创建,请参阅) 现在,您必须向联系人(现有联系人或新联系人)添加
kapersonsocialprofileproperty
为了完整起见,这里详细说明了如何创建联系人并将其添加到通讯录中
希望它能帮助别人。Facebook很特别。Facebook集成作为iOS6的一部分被添加到设备和Social.framework中。
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 */