如何通过Facebook启动应用程序时获取URL?

时间:2013-12-09 13:57:28

标签: ios iphone facebook facebook-graph-api deep-linking

我在我的应用程序中使用此方法presentShareDialogWithLink共享一个facebook链接。当用户点击Facebook应用程序中的帖子时,这将自动打开我的应用程序,那时我想获取用户点击Facebook应用程序的URL。我如何获得该网址以及我将获得该网址的位置?

2 个答案:

答案 0 :(得分:0)

您可以通过AppDelegate中的方法handleOpenURL获取URL

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

   /* Do something with the url */
}

答案 1 :(得分:0)

如果您在当前*调用期间设置了处理程序,请执行以下操作:

[FBDialogs presentShareDialogWithLink:url
                              handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
    if(error) {
        NSLog(@"Error: %@", error.description);
    } else {
        NSLog(@"Success!");
    }
 }];

然后在AppDelegate中覆盖应用程序:openURL:sourceApplication:annotation:method:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {

    BOOL urlWasHandled = [FBAppCall handleOpenURL:url
                                sourceApplication:sourceApplication
                                  fallbackHandler:^(FBAppCall *call) {
                                      NSLog(@"Unhandled deep link: %@", url);
                                  }];

    return urlWasHandled;
}

然后你的处理程序应该得到一个回调。

有关详情,请参阅https://developers.facebook.com/docs/ios/share-dialog/,特别是https://developers.facebook.com/docs/ios/share-dialog/#handling-responses