【发布时间】:2015-08-18 10:16:45
【问题描述】:
如何在 iOS 的新 Facebook SDK 中实现深度链接?
【问题讨论】:
标签: ios xcode facebook deep-linking
如何在 iOS 的新 Facebook SDK 中实现深度链接?
【问题讨论】:
标签: ios xcode facebook deep-linking
要在 Facebook 上进行深度链接,您需要在您的网站上使用他们的 App Links 元标记。 Facebook 的 App Links 最令人困惑的是,它们实际上并不是链接,它们是您网站上的元标记。例如,IMDB 如何将应用链接添加到他们的 The Rock 电影网站:
<html prefix="og: http://ogp.me/ns#">
<head>
<title>The Rock (1996)</title>
...
<meta property="al:ios:app_store_id" content="342792525" />
<meta property="al:ios:url" content="imdb://title/tt0117500" />
<meta property="al:ios:app_name" content="IMDb Movies & TV" />
<meta property="al:android:package" content="com.imdb.mobile" />
<meta property="al:android:url" content="imdb://title/tt0117500" />
<meta property="al:android:app_name" content="IMDb Movies & TV" />
...
</head>
...
</html>
您可以看到他们的深层链接 URI 和路径是 imdb://title/tt0117500,他们必须在他们的网站上指定它,以便 Facebook 机器人可以抓取它。
一旦元标签出现在网站上,当链接发布到 Facebook 的提要时,如果应用程序已通过调用元标签中指定的 URI 进行安装,他们将直接打开该应用程序。然后,在您应用的 App Delegate 中,您可以接收在 openUrl 方法中指定的 URI,如下所示:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSLog(@"opened app from URL %@", [url description]);
return YES;
}
您可以在该方法中解析 URL 并打开将显示与该 URL 关联的适当数据的视图控制器。
【讨论】: