【发布时间】:2011-12-12 19:39:58
【问题描述】:
我正在开发一个应用程序,我需要在其中放置一个按钮,将用户重定向到某个 Facebook 页面。通常点击此按钮应在 Facebook 应用程序中打开个人资料,如果未安装 Facebook,则在导航器中打开。另外,我想在 Twitter 页面上做同样的事情。
我想知道怎么做。
【问题讨论】:
标签: iphone objective-c ios facebook twitter
我正在开发一个应用程序,我需要在其中放置一个按钮,将用户重定向到某个 Facebook 页面。通常点击此按钮应在 Facebook 应用程序中打开个人资料,如果未安装 Facebook,则在导航器中打开。另外,我想在 Twitter 页面上做同样的事情。
我想知道怎么做。
【问题讨论】:
标签: iphone objective-c ios facebook twitter
这一切都归结为自定义 url 方案。 Facbook 是fb://,所以如果你打开fb://profile/zuck,Mobile Safari 会跳转到 Facebook 应用程序并加载 Mark Zuckerbergs 的个人资料页面。目前,新的 Facebook 应用程序中存在一个错误,导致其无法正确加载个人资料。
要检查用户的设备是否可以响应 URL 方案,请查看 this post。
编辑::
就 Twitter 而言,您可能需要检查几个不同的 Twitter 客户端,例如 twitter:// 或 tweetbot://,然后再将用户踢到 https://twitter.com/#!/<# User Name #>
【讨论】:
为了扩展@SkylarSch 的答案,这将首先尝试在本机 Facebook 应用程序中打开该页面,否则它将在 Mobile Safari 中打开它:
NSURL *fbNativeAppURL = [NSURL URLWithString:@"fb://page/yourPageIDHere"];
// Check to make sure URL can be opened on device (whether the user has the Facebook app installed)
if ( [[UIApplication sharedApplication] canOpenURL:fbNativeAppURL])
{
[[UIApplication sharedApplication] openURL:fbNativeAppURL];
}
// Otherwise, just open it in the browser
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/yourPageIDHere"]];
}
【讨论】:
您可以通过获取该个人资料的 Facebook id 来打开它。所以你可以找到 Facebook id 为: 网址https://www.facebook.com/pageName 现在,转到:http://findmyfacebookid.com 粘贴您的 URL,获取 Facebook id,然后将 url 设为 @"fb://profile/profileID"
它对我有用!
【讨论】:
{edit}我明白你的意思{/edit}
Facebook iPhone 应用程序注册为 fb:// 前缀的 URL 处理程序。我不确定这是否适用于所有版本,但我相信单击指向fb://profile/{page or profile id} 的链接将在 iphone 应用程序中打开配置文件(如果已安装)。
我在this question 上发现了这一点,截至 3.4 版是准确的(目前是 4.0,但我想其中大部分仍然有效)
【讨论】: