是否可以从iPhone模拟器分享深层链接?

时间:2014-01-22 15:22:08

标签: ios iphone facebook deep-linking facebook-sdk-3.1

Deep Links

  

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);
                                                      }
                                                  }
                                              }
                                          }];

这是我在尝试与第二组参数共享时看到的错误:

Error display

我在提供登录凭据后就知道了。这不是很有用。我不知道在哪里看。甚至可以从iPhone模拟器分享深层链接吗?

编辑:Deep Links和自定义方案记录了Facebook应用程序功能。 Facebook Apps设置页面中有URL Scheme Suffix的可选字段。

0 个答案:

没有答案