我继承了一个使用sharekit库的项目。然后我被老开发者告知我需要使用以下方法来实现facebook共享。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
[SHKFacebook handleOpenURL:url]
return YES;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
[SHKFacebook handleOpenURL:url]
return YES;
}
我只是希望有人向我解释这两个函数的作用以及它们在理论上如何用于使facebook共享工作。
答案 0 :(得分:3)
当您的应用程序被告知打开URL,链接到文件或文件本身时,会发送这两个。如果您在应用的info.plist中定义了可以接受的URL /文件类型,则只会将其发送到您的应用程序。第一个用于收集有关发送链接/文件的应用程序的更多信息,然后让您决定如何处理I信息(包括打开文件/链接)。第一个也可以用于获取发送URL的应用程序的信息。就像在IOS 5中从iTunes应用程序打开iTunes商店时一样,它会显示一个新的“库”按钮。这样,iTunes可以将另一个URL发送回音乐应用程序以重新启动库页面。
第二个(在我看来)应该被弃用,因为第一个提供了更多的信息并完成了同样的任务。
在Facebook的背景下,它对你来说无济于事。也许如果用户需要将照片从电子邮件发布到他们的墙上,或者可能在Facebook上共享文档。
答案 1 :(得分:3)
可能这些方法实现了Facebook SSO的一半(单点登录)。通常的方式是:
答案 2 :(得分:1)
两种方法都要求委托打开由URL标识的资源。现在已弃用handleOpenURL
,您必须使用application:openURL:sourceApplication:annotation:
您的应用程序可以提供myapp://
等URL方案参考,您可以通过发送提供的URL从其他应用程序打开此应用程序。打开应用程序后,application:openURL:sourceApplication:annotation:
将被触发。您也可以向app发送查询,然后解析它。
我不知道SHKFacebook
是什么以及它是如何运作的,但我认为它与这些网址一起运作 - facebook schemes