2013-12-09 264 views
0

我在我的应用程序中使用此方法presentShareDialogWithLink分享facebook链接。当用户点击facebook应用程序中的帖子时,这会自动打开我的应用程序,那时我想要获取用户在Facebook应用程序中点击的URL。我如何获得该网址,以及我会在哪里获得该网址?如何在通过Facebook启动应用程序时获取URL?

回答

0

您可以通过方法handleOpenURL在AppDelegate中

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

    /* Do something with the url */ 
} 
+0

感谢,但我可以解析此网址是什么?因为它有很多东西,比如FBID授权和访问令牌,然后是url。我怎样才能解析我的网址? – Mashhadi

+0

使用你的逻辑来解析url。看看这个[link](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString ) –

0

获取URL如果您在本期间成立了一个处理程序*通话,是这样的:

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

然后在你的AppDelegate,覆盖应用程序:openURL:sourceApplication:注释:方法:

- (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; 
} 

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

欲了解更多信息,请参阅https://developers.facebook.com/docs/ios/share-dialog/,尤其https://developers.facebook.com/docs/ios/share-dialog/#handling-responses

相关问题