使用简单URL方案在原生Facebook IOS应用中打开Facebook页面问题

9

你好!

我想使用URL Scheme在原生iOS Facebook应用程序中打开我的Facebook页面(而不是个人资料)。

我正在测试此功能-例如:fb://profile

它运行良好。

但是,当我尝试通过fb://page/141720395863506打开我的Facebook页面时

它只是重定向到Facebook应用程序,什么也没有发生,简单地打开应用程序并加载新闻源。

请帮助我。我找不到任何正式的Facebook开发者指南文档,并有一些问题:

Facebook IOS应用程序Url Sheme是否仍然支持此功能?

在这种情况下我可能会出错吗?

最好的问候!


你的意思是想在没有登录的情况下查看你的 Facebook 主页吗? - iMeMyself
1
@iShru - 不,新版本的fb应用程序更改了url方案,之前有效的这些链接不再起作用。我没有解决方案,但肯定希望找到一个。 - jab11
4个回答

19
我相信我已经找到了一个解决方案... 它目前在iPhone的facebook ios 5.0.1下运行正常.. 尚未尝试在iPad上使用。
网址是fb://profile/132753734806
现在最重要的部分是那个数字。它链接到我的一个客户,查尔斯·斯科特。然而,那不是他们的FBID或页面ID。他们的页面ID是10150348920319807
所以你会认为它应该是fb://profile/10150348920319807,但这会给我一个错误。
这里是如何获取正确的代码.. 点击任何一个页面的照片.. 这是我的客户的示例 https://www.facebook.com/photo.php?fbid=10150348920319807&set=a.10150348920314807.356942.132753734806&type=1&theater
如果你注意到那个不能工作的FBID遵循那个URL中的fbid=.. 你想要的数字就在&type=1theater之前,但是在那个最后的句号之后。132753734806是在fb://profile/之后输入的正确代码。
我希望这有点意义... 我对代码或编码一无所知,但这让我感到非常困扰,我知道有一种方法。
现在,我想回答/解决的两个问题是.. 1. 如果这可以在安卓手机上使用 2. 创建一个QR码,使人们可以使用iOS设备扫描,并自动打开它。
祝你好运,希望这对每个人都有帮助!

非常好的发现!完美地运作了。 - RyanG
非常准确。此外,您可以在几乎所有涉及页面的页面上找到所需的ID,例如编辑页面。 - user481081
@Alessandro 如果用户从Facebook应用程序中注销,那么它将打开登录应用程序,但是在登录后它不会重定向到您的页面。我们该如何解决这个问题? - alok srivastava
这个方法对我没用,但是使用 fb://page/$pageID 方法成功了。其中的 pageID 是通过前往页面 > 关于我们 并向下滚动查找 "页面 ID" 获得的。实际上,直接在我的移动浏览器(FF)中键入 "fb://page/9101337646" 就可以进入应用程序中的该页面。将相同的 URL 作为元标记刷新只能进入应用程序而不显示页面。哎! - pbhj

6
上面Alessandro的答案是正确的,但对我没用..所以这是正确的方法。 我有一个URL https://www.facebook.com/pageName 现在,去: http://findmyfacebookid.com 粘贴你的URL,获取Facebook ID,然后将URL设置为@"fb://profile/pageID"
它对我有用!
注意:检查设备上是否安装了原生应用程序,否则通过默认浏览器打开。
 if (![[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"fb://profile/pageId"]]) 
{            
   NSURL *url = [NSURL URLWithString:@"https://www.facebook.com/pageName"];
   [[UIApplication sharedApplication] openURL:url];
}

该域名目前已经无法解析到网页。 - pbhj

1

Swift 3.0 / iOS10:

let fbUrl: NSURL = NSURL(string: "fb://profile/55555555555555")!
let fbWebUrl: NSURL = NSURL(string: "https://facebook.com/yourFacebookPageName")!

if (UIApplication.shared.canOpenURL(fbUrl as URL)) {
    if #available(iOS 10.0, *) {
        UIApplication.shared.open(fbUrl as URL, options: [:], completionHandler: nil)
    } else {
        // Fallback on earlier versions
        UIApplication.shared.openURL(fbUrl as URL)
    }
} else {
    if #available(iOS 10.0, *) {
        UIApplication.shared.open(fbWebUrl as URL, options: [:], completionHandler: nil)
    } else {
        // Fallback on earlier versions
        UIApplication.shared.openURL(fbWebUrl as URL)
    }
}

"

“55555555555555”应替换为您可以从http://findmyfbid.com获取的数字Facebook ID,“yourFacebookPageName”应替换为页面的用户名。

别忘了在应用程序的Info.plist中启用fb url方案(在LSApplicationQueriesSchemes下)。

"

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接