iOS允许应用程序通过自定义URL框架打开其他应用程序 方案。与Facebook集成允许用户进行导航 通过这些网址从Facebook应用程序直接到您的应用程序,我们 将被称为“深层链接”。例如,当您的应用发布到 Facebook代表其用户,它可以包含其中一个URL,或者 深刻的链接,在帖子中。然后,当用户的朋友与之交往时 发布,他们将被定向到您的应用程序,您将收到此链接和 你可以处理它来决定将它们放在哪个视图上。
我可以从iPhone模拟器中分享我的测试应用中的“普通”链接。现在我想从iPhone模拟器分享深层链接。但是,只要我将代码更改为使用深层链接,共享过程就会失败。
共享适用于这组参数(注意:链接是普通的URL):
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Sharing Tutorial", @"name",
@"Build great social apps and get more installs.", @"caption",
@"Allow your users to share stories on Facebook from your app using the iOS SDK.", @"description",
@"https://developers.facebook.com/docs/ios/share/", @"link",
@"http://i.imgur.com/g3Qc1HN.png", @"picture",
nil];
共享不使用这组参数(现在链接是一个深层链接):
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Sharing Tutorial", @"name",
@"Build great social apps and get more installs.", @"caption",
@"Allow your users to share stories on Facebook from your app using the iOS SDK.", @"description",
@"fbAPPID://authorize#target_url=[MYURL]", @"link",
@"http://i.imgur.com/g3Qc1HN.png", @"picture",
nil];
这是我用来实际分享链接的代码:
[FBWebDialogs presentFeedDialogModallyWithSession:nil
parameters:params
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error) {
// An error occurred, we need to handle the error
// See: https://developers.facebook.com/docs/ios/errors
NSLog([NSString stringWithFormat:@"Error publishing story: %@", error.description]);
} else {
if (result == FBWebDialogResultDialogNotCompleted) {
// User cancelled.
NSLog(@"User cancelled.");
} else {
// Handle the publish feed callback
NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
if (![urlParams valueForKey:@"post_id"]) {
// User cancelled.
NSLog(@"User cancelled.");
} else {
// User clicked the Share button
NSString *result = [NSString stringWithFormat: @"Posted story, id: %@", [urlParams valueForKey:@"post_id"]];
NSLog(@"result %@", result);
}
}
}
}];
这是我在尝试与第二组参数共享时看到的错误:
我在提供登录凭据后就知道了。这不是很有用。我不知道在哪里看。甚至可以从iPhone模拟器分享深层链接吗?
编辑:Deep Links和自定义方案记录了Facebook应用程序功能。 Facebook Apps设置页面中有URL Scheme Suffix
的可选字段。